से छवि सहेजना मुझे अपने पीसी पर एक PHP यूआरएल से एक छवि को सहेजने की जरूरत है। मान लें कि मेरे पास एक पृष्ठ है, http://example.com/image.php
, जिसमें एक "फूल" छवि है, और कुछ नहीं। मैं इस छवि को यूआरएल से नए नाम (PHP का उपयोग करके) कैसे सहेज सकता हूं?PHP यूआरएल
उत्तर
यदि आप allow_url_fopen
सेट true
करने के लिए है:
$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));
वरना cURL का उपयोग करें:
$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
$content = file_get_contents('http://example.com/image.php');
file_put_contents('/my/folder/flower.jpg', $content);
पेज एक एनिमेटेड GIF छवि पहना हुआ है। एक फ़ाइल फ़ोल्डर में फूल.gif के रूप में संग्रहीत है। लेकिन यह खाली है। कोई छवि शो नहीं। कोई समाधान? – riad
error_reporting (E_ALL | E_STRICT) चालू करें और file_get_contents() के वापसी मान की जांच करें, तो आपको एक उचित त्रुटि संदेश प्राप्त करना चाहिए। – soulmerge
शायद साइट व्यवस्थापक ने रेफरल के बाहर वर्जित किया है। उस स्थिति में आप stream_context_create() को आज़मा सकते हैं और उपयुक्त HTTP शीर्षलेख सेट कर सकते हैं। http://us2.php.net/manual/en/function.stream-context-create.php – Calvin
यहां आपको उदाहरण image.jpg करने के लिए दूरस्थ छवि बचाता है।
function save_image($inPath,$outPath)
{ //Download images from remote server
$in= fopen($inPath, "rb");
$out= fopen($outPath, "wb");
while ($chunk = fread($in,8192))
{
fwrite($out, $chunk, 8192);
}
fclose($in);
fclose($out);
}
save_image('http://www.someimagesite.com/img.jpg','image.jpg');
मैं अन्य समाधान के किसी भी प्राप्त करने के लिए काम करने में सक्षम नहीं था, लेकिन मैं wget का उपयोग करने में सक्षम था:
$tempDir = '/download/file/here';
$finalDir = '/keep/file/here';
$imageUrl = 'http://www.example.com/image.jpg';
exec("cd $tempDir && wget --quiet $imageUrl");
if (!file_exists("$tempDir/image.jpg")) {
throw new Exception('Failed while trying to download image');
}
if (rename("$tempDir/image.jpg", "$finalDir/new-image-name.jpg") === false) {
throw new Exception('Failed while trying to move image file from temp dir to final dir');
}
पथ आप की योजना बना रहे में स्थित एक फ़ोल्डर नामित चित्र बनाएं उस PHP स्क्रिप्ट को रखें जिसे आप बनाना चाहते हैं। सुनिश्चित करें कि इसमें सभी के लिए लिखने के अधिकार हैं या स्क्रिप्ट काम नहीं करेंगे (यह निर्देशिका में फ़ाइलों को अपलोड करने में सक्षम नहीं होगी)।
Vartec's answercURL के साथ मेरे लिए काम नहीं किया। यह मेरी विशिष्ट समस्या के कारण मामूली सुधार के साथ किया।
जैसे,
जब सर्वर पर एक रीडायरेक्ट नहीं है (जैसे कि जब आप फेसबुक प्रोफाइल छवि को बचाने की कोशिश कर रहे हैं) आप विकल्प सेट निम्नलिखित की आवश्यकता होगी:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
पूर्ण समाधान बन जाता है:
$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
धन्यवाद zuul, वास्तव में और स्टो वास्तव में अधिक खोज या व्यतीत समय के बाद उपयोगी पाया –
शानदार - इससे बहुत मदद मिली है! Vartecs उत्तर पर भी ध्यान दिया जाना चाहिए – Nick
$img_file='http://www.somedomain.com/someimage.jpg'
$img_file=file_get_contents($img_file);
$file_loc=$_SERVER['DOCUMENT_ROOT'].'/some_dir/test.jpg';
$file_handler=fopen($file_loc,'w');
if(fwrite($file_handler,$img_file)==false){
echo 'error';
}
fclose($file_handler);
copy('http://example.com/image.php', 'local/folder/flower.jpg');
बेहद सुरुचिपूर्ण ('allow_url_fopen' की आवश्यकता है)। – Iiridayn
यह पीएनजी पारदर्शिता –
नहीं रखता मैं एक जाना होने एकदम चमक, बस इसे इतना जोड़ने यदि कोई उपयोगकर्ता भविष्य में इस पृष्ठ पर आते हैं, वे देखेंगे :) लेकिन यह एक बहुत ही सुरुचिपूर्ण समाधान है –
file()
PHP Manual देखें:
$url = 'http://mixednews.ru/wp-content/uploads/2011/10/0ed9320413f3ba172471860e77b15587.jpg';
$img = 'miki.png';
$file = file($url);
$result = file_put_contents($img, $file)
को allow_url_fopen = – zloctb
पर कभी भी $ img का उपयोग नहीं करना चाहिए? –
- 1. PHP - यूआरएल
- 2. PHP - यूआरएल
- 3. PHP - यूआरएल
- 4. PHP यूआरएल
- 5. PHP यादृच्छिक यूआरएल नाम (लघु यूआरएल)
- 6. PHP यूआरएल रीवाइट
- 7. PHP: रिश्तेदार यूआरएल
- 8. $ _GET और यूआरएल PHP
- 9. php: एसईओ दोस्ताना यूआरएल
- 10. php पूर्ण यूआरएल
- 11. PHP आवेदन यूआरएल रूटिंग
- 12. php जावास्क्रिप्ट यूआरएल एन्कोडिंग
- 13. PHP: प्रॉक्सी एक और यूआरएल
- 14. PHP - वर्तमान यूआरएल प्राप्त करना
- 15. यूआरएल नियंत्रक मानचित्रण रणनीतियां (PHP)
- 16. बाहरी यूआरएल के PHP readfile()
- 17. PHP ढांचे में सुंदर यूआरएल
- 18. पुनर्निर्देशन .php विस्तार के बिना यूआरएल को यूआरएल
- 19. यूआरएल
- 20. यूआरएल
- 21. यूआरएल
- 22. प्रतिक्रिया अनुरोध के बिना PHP अनुरोध यूआरएल
- 23. यूपीएस एपीआई PHP - एंड पॉइंट यूआरएल
- 24. PHP यूआरएल पैरामीटर और उसके वैल्यू
- 25. PHP के लिए Django- जैसे यूआरएल रूटिंग
- 26. यूआरएल
- 27. यूआरएल
- 28. यूआरएल
- 29. यूआरएल
- 30. यूआरएल
धन्यवाद भाई, आपका कोड समस्या को हल करने में मेरी सहायता करता है। लेकिन क्या आप स्क्रिप्ट को स्वचालित बनाने में मेरी मदद कर सकते हैं। मेरा मतलब है कि जब एक नई gif छवि url ("http://example.com/image.php") पर आती है तो हमारी स्क्रिप्ट स्वचालित रूप से नई छवि लाती है और उसे स्टोर करती है मेरी निर्देशिका? – riad
और आप कैसे जानते हैं कि नई छवि "आई" है? ? //example.com/fetch-image.php url = http: // blabla.com/flower.jpg' – vartec
मैं एक '$ _GET' छवि' http के URL को शामिल चर का उपयोग कर रियाद साधन लगता है। इस उदाहरण के मामले में, आप अपनी PHP स्क्रिप्ट में '$ _GET [' url ']' को कॉल कर सकते हैं, जैसे: '$ ch = curl_init ($ _ GET ['url']);'। –