このコードを使用して、Mapquest Traffic API から画像ファイルをダウンロードしています。
<?php
$files = glob("/root/TrafficHistory/*.gif");
$lastFileName = $files[count($files)-1];
$newFile = time() . ".gif";
$imgData = file_get_contents("http://www.mapquestapi.com/traffic/v2/flow?key=**REMOVED**&mapLat=34.05396382838673&mapLng=-118.24529104634557&mapHeight=1000&mapWidth=1000&mapScale=433342");
file_put_contents("/root/TrafficHistory/" . $newFile, $imgData);
$md5Old = md5_file($lastFileName);
if ($md5Old == md5_file("./" . $newFile)) {
unlink("./" . $newFile);
echo "\033[31mTraffic data same at " . time() . " aborting.\033[0m\n";
} else {
echo "\033[32mNew traffic data downloaded to /root/TrafficHistory/" . $newFile . " at " . time() . "\033[0m\n";
}
?>
画像の保存中にエラーが発生しても、コードは問題なく動作します。ここで見られるように、ダウンロードされたトラフィック オーバーレイfile_get_contentsが GIF 画像を完全にダウンロードしていないように見えることがわかります。問題の GIF へのリンクを次に示します (ブラウザでは正しく表示されますが、予期しないファイルの終わりを示す PhotoShop では開きません)。ダウンロードしたすべての画像がfile_get_contentsこのように表示されることに注意してください。ただし、API リンクから直接表示すると、完全に表示されます。必要に応じて、Mapquest Traffic API へのリンクもあります。ご協力いただきありがとうございます。