http://developer.yahoo.co.jp/
で公開されている API は全て XML でレスポンスが返りますが、
output=php をパラメータに追加すると、PHP の serialize() 形式でシリアル化されたデータが返るという記事を見付けました。
注:ライブラリを利用することで、他の言語(C#, perl など)でも PHP serialize は読み込むことが可能なため、用途は PHP に限りません。これに付いてはリンク先の最後を参照してください。
Using Serialized PHP with Yahoo! Web Services
ここに書かれている、
http://api.search.yahoo.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&query=Madonna&results=1&output=php
にアクセスしてみるとサンプル出力が得られます。
以下、上記 API を利用した PHP のサンプルコードです。
<?php
$url = “http://api.search.yahoo.com/ImageSearchService/V1/” .
“imageSearch?appid=YahooDemo&query=fruit+cake&results=1&output=php”;
ob_start();
readfile($url);
$result =unserialize(ob_get_contents()); // 結果セットを取得
ob_end_clean();
// var_dump($result); // どういう内容が格納されているか確認したい場合コメントアウト。
$thumbnail_url = $result[“ResultSet”][“Result”][0][“Thumbnail”][“Url”];
?>
<html>
<head>
<title>サムネイル</titte>
</head>
<body>
<?php foreach($result[“ResultSet”][“Result”] as $record){ ?>
□<?=$record[‘Title’]?>
(<?=$record[‘FileSize’]?> バイト)<br>
<p>説明:<?=$record[‘Summary’]?></p>
<a href=”<?=$record[‘ClickUrl’]?>”><img src=”<?=$record[‘Thumbnail’][‘Url’]?>”></a><br>
<hr>
<?php } ?>
</body>
</html>
参考:
– Yahoo曰く、XMLじゃなくてPHPの変数をそのままシリアライズして返せばいいじゃん