2 つの入力パラメーターを持つ関数を作成しました。1 は画像の URL を入力し、もう 1 つは基本的には画像のソース名である文字列です。画像の取得に失敗した場合にデフォルトの画像パスを返すような方法で作成しようとしました。ただし、これは画像の取得に失敗した場合には機能しますが、場合によっては機能せず、基本的に空の画像ファイルが作成されるため、画像を完全にダウンロードできないと考えています。
私のコードは以下です。
function saveIMG($img_link, $source){
$name = date("Y-m-d_H_i_s_") . mt_rand(1,999) . "_".$source.".jpg";
$ch = curl_init($img_link);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
if ($result === FALSE){ //curl_exec will return false on failure even with returntransfer on
$name = "images/news_default.jpg";
return $name;
}
else {
$fp = fopen("images/$source/$name", 'w');
fwrite($fp, $result);
curl_close($ch);
fclose($fp);
$name ="images/$source/$name";
return $name;
}
}
作業中の画像のみを保存し、空の画像ではなく、画像が空の場合はデフォルトのニュース画像を返すようにする方法はありますか?
私が十分に明確だったことを願っています。