PHPを使用して次のURL(画像)をダウンロードするにはどうすればよいhttp://www.delo.si/assets/media/picture/20121228/POLITIČNI05 tomi lombar.jpg?rev=2
ですか?
問題は、PHPがURLでUnicode文字をサポートしていないČ
ことです(そこにある文字を参照してください)。file_get_contents
とcURLの両方を使用してみましたが、どれも機能しません。ベローは私の機能しないコードです。
file_get_contents
:
$url = "http://www.delo.si/assets/media/picture/20121228/POLITIČNI05 tomi lombar.jpg?rev=2";
$stream_context = array('http' => array(
'method'=>"GET",
'header'=>"Content-Type: text/html; charset=utf-8"
));
$image_contents = file_get_contents($url, false, stream_context_create($stream_context));
file_put_contents("image.jpg", $image_contents);
カール:
$url = "http://www.delo.si/assets/media/picture/20121228/POLITIČNI05 tomi lombar.jpg?rev=2";
$ch = curl_init($url);
$fp = fopen('image.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_ENCODING, "UTF-8");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/html; charset=utf-8"));
curl_exec($ch);
curl_close($ch);
fclose($fp);
「機能しない」と は、「機能しない」とは、ブラウザにURLを貼り付けた場合とは異なる画像がダウンロードされることを意味します。このサイトには、フォールバック画像が設定されているようです。したがって、画像が存在しない場合は、デフォルトの画像を取得します。