明けましておめでとうございます。
前回に引き続き、flickr.interestingness.getList API と Flash の関係について。
flickr.interestingness.getList はクオリティの高い写真を日付ごとに最大 500 件取得できる点ですが、中には Source URL で取得出来る最も重要な b サイズ(でかい画像サイズ)の画像がアップロードしたユーザーが画像を削除した際に取得出来ない場合があるようで、過去にさかのぼるにつれてその頻度は高いようです。
Flash で Viewer を作る以上、そういった画像は極力省きたいので一度 PHP などのプログラム側で HTTP レスポンスからの情報を評価する必要があります。Flickr の仕様上、画像が存在しない場合はHTTP リスポンスコードで 302(Moved Temporarily)が返って画像が無い場合の GIF 画像(photo_unavailable.gif)が返ってしまうので、Flash ではこういった GIF 画像も画像と認識して読み込んでしまい表現上都合が良くないので、cron で定期的にそういった画像を省いた状態で新規に xml を新たに書き出した方が良さそう。でもいちいちリクエストをするので処理は重いのがネックですね。curl --head でも同様な処理を行ったがそんなに処理速度が変わらなかった。何か他の方法は無いだろうか。
▽ HTTP リスポンスコードを評価するサンプルクラス
require_once('HTTP/Request.php');
class sampleClass {
/**
* コンストラクタ関数
*/
public function __construct() {
}
/**
* HTTP リスポンスコードを評価する関数
*/
public function isPhotoExisted($b_image) {
$req =& new HTTP_Request($b_image);
if(!PEAR::isError($req->sendRequest())) {
$code = $req->getResponseCode();
if($code == 302) {
return false;
}
} else {
return false;
}
return true;
}
}
▽ 実行コードサンプル
$sampleObj = new sampleClass();
$isExisted = $sampleObj->isPhotoExisted('http://farm1.static.flickr.com/29/65010636_f8ad1dc77c_b.jpg');











