PHP curl を使用して画像をダウンロードできるクラスがあります。私のクラスは次のようになります。
function getImage($img, $path) {
$fullpath = basename($img);
$ch = curl_init($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$rawData = curl_exec($ch);
curl_close($ch);
if(file_exists($fullpath)) {
unlink($fullpath);
}
$fp = fopen($path.$fullpath, "w+");
fwrite($fp, $rawData);
fclose($fp);
}
これはほとんどの画像で問題なく機能しますが、代わりに壊れた画像が表示される場合もあります。ウェブサイトから画像のパスを確認してみましたが、正しいです。私の質問は、なぜこれが起こっているのか、どうすれば画像が壊れてダウンロードされるのを防ぐことができるのでしょうか?