[PHP-users 22473]Re: Amazonwebサービスでheavyでの取得
Masayuki AOKI
info @ martin.bz
2004年 7月 3日 (土) 12:45:05 JST
こんにちはmartinです。
>私も、XSLTは考えたのですが、いまいち、理解していないところもあり、
>検索結果を自由に加工しづらくて困っています。
検索結果をそのまま生かしページを構成するのであればXSLTを使って加工
するのが妥当でしょうし,結果をPHPのページに動的に埋め込みたいというこ
とであれば,GETで取得してPHPの配列なりに入れ込むのが容易でしょうね。
自分は後者の方法を使用していますが,その簡単な例を例示しておきます。
基本的にマニュアル(http://jp.php.net/function.fsockopen)通りです。
結果はUTF-8で返ってきます。上手くいけば,「オイラー・・・」というブック
情報が返ってくるはずです。またこの例ではAsinSearchですが,KeywordSearch
でもいけると思います。渡す文字列は日本語ならエンコードが必要でしょうが。
<?php
$url = 'http://xml-jp.amznxslt.com/onca/xml3?'
. 'dev-t=D2BUEA9DCZZ5YB&' // developer token, any
. 'f=xml&'
. 't=foo-22&' // associate ID, any
. 'locale=jp&'
. 'type=heavy&'
. 'AsinSearch=4480086757'; //otherwise KeywordSearch
function my_GET_HTTP($url){
$url = parse_url($url);
$url['query'] = isset($url['query']) ? '?'.$url['query'] : '';
$url['port'] = isset($url['port']) ? $url['port'] : 80;
$reply = '';
$request = "GET ".$url['path'].$url['query']." HTTP/1.0\r\n";
$request .= "Host: ".$url['host']."\r\n";
$request .= "User-Agent: PHP/".phpversion()."\r\n\r\n";
if(!$fp = fsockopen($url['host'], $url['port'])){
$reply .= die('CONNECTION ERROR');
}
fputs($fp, $request);
while (!feof($fp)) {
$reply .= fgets($fp, 4096);
}
fclose($fp);
return $reply; // get output
}
// print_r(my_GET_HTTP($url));
?>
色々試されて下さい。
/*
Masayuki AOKI: maoki @ bioreg.kyushu-u.ac.jp
HomePage: http://martin.bz
*/
PHP-users メーリングリストの案内