私は、Tumblr の宣伝に使用される Web サイトに取り組んできました。初めての PHP Image Server スクリプトを作成したので、Tumblr アバターを保存し、厄介な Tumblr API 呼び出しを減らすことができます。
現在、サイトで動作していますが、奇妙な不具合が発生しています。ページを開くと、ほとんどの場合、1 つまたは 2 つのアバターが壊れた画像として表示されます。
動作のあるページ: http://www.tumblrlink.com/
ページを更新すると、通常、別の画像セットが壊れて表示されるため、特定のアカウントに固有のものではないことはわかっています。
これは私が作成したイメージ サーバー スクリプトです。
<?php
if (!isset($_GET['uri']))
exit();
$url = urldecode($_GET['uri']);
// Check to make sure API URL is passed.
if (strpos($url,'http://api.tumblr.com/') === FALSE)
exit();
// Get the User's Tumblr "Short Name"
$shortName = $url;
$shortName = str_replace('http://api.tumblr.com/v2/blog/','',$shortName);
$shortName = str_replace('/avatar/40','',$shortName);
$avatarLoc = '../../media/avatars/' . $shortName . '.png';
// Save the Avatar to the server for use.
if (!file_exists($avatarLoc)) {
copy($url, $avatarLoc);
}
// Write out the contents of the Avatar Image.
header("Content-Type: image/png");
header("Content-Length: " . filesize($avatarLoc));
readfile($avatarLoc);
exit();
?>
リンクでわかるように、画像は保存され、正常に提供されていますが、90% の確率でしか表示されません。
ここでプログラムされたタイミングの問題が発生していますか、それともサーバー/環境の問題でしょうか? どんな助けでも大歓迎です。