Yahoo! デベロッパーネットワークでサンプルを作ろうとしていたのだが、「xml」の解析ではまる。
自宅サーバには「domxml」が入っていないのでとりあえず「xml_parse_into_struct()」で対応したのだけど、どうにもソースが汚い...。エレガントじゃない...。ひとえにわたしの技術不足なのですが...。
Yahoo!のSDKダウンロードのサンプルコードでも使ってるので「domxml」のインストールを考える。
途方にくれる。
気付く。
cd php-4.4.4
「phpinfo()」で現状のコンフィグを控えておく。「./configure」なのですが、「--with-dom 」を足す。ほんとに足すだけでいいのか?「 --with-dom=[DIR] 」とあるようにディレクトリの指定は?とりあえず「./configure」!
checking for libxml version... >= 2.4.14
configure: error: DOMXML requires ZLIB. Use --with-zlib-dir=<DIR>
make install
phpinfo()で確認。「domxml」の項目あります。「enable」となっている。問題は本当に使えるかどうか。
PHPのテクメモ | Yahoo Japanのウェブ検索APIを参考にさせてもらう。エラーは出ない。「domxml」はうまく動いているようだ。ただ検索結果がおかしい...。日本語コードの違いか?
「YahooWebSearch.class.php」の方で検索ワードを飛ばす前にURLエンコードしたら正しく動きました。
function getResults(){
if(strlen($this->appID)==0 || strlen($this->phrase)==0){
return false;
}else{
$this->phrase=rawurlencode($this->phrase);//ここを追加
$query=$this->buildQuery($this->phrase,$this->appID,$this->format,
$this->start,$this->results,$this->similar);
$xml=file_get_contents($this->reqURL.$query);得られた結果は、
array(3) {
["Title"]=>
string(15) "Wii [ウィー]"
["Summary"]=>
string(222) "任天堂の据置型ゲーム機「Wii(ウィー)」の公式サイト(以下省略)"
["Url"]=>
string(30) "http://www.nintendo.co.jp/wii/"
}
[1]=>
array(3) {
["Title"]=>
string(7) "Wii.com"
["Summary"]=>
string(144) "任天堂 , 製品とサービス任天堂 , Nintendo , ニンテンド(以下省略)"
["Url"]=>
string(15) "http://wii.com/"
}
[2]=>
array(3) {
["Title"]=>
string(77) "N-Wii.net 任天堂「Wii」のニュース、ソフト発売予定、本体スペック・機能紹介など"
["Summary"]=>
string(223) "任天堂の新型ゲーム機「Wii(ウィー)」の最新ニュース、ソ(以下省略)"
["Url"]=>
string(21) "http://www.n-wii.net/"
}
参考URL:
PHPのテクメモ | Yahoo Japanのウェブ検索API
PHP: DOM XML 関数 - Manual
コメント (2)
PHPテクメモのかおるんです。トラックバックありがとうございます。urlencodeの件、私の転記ミスのようです。ご指摘いただきありがとうございました。あとで直しておきます。今後ともよろしくお願いいたします。
投稿者: かおるん | 2007年01月31日 03:01
日時: 2007年01月31日 03:01
>>かおるんさま
こんばんは。
PHP初心者なのでこれからも参考にさせていただきます。こちらこそよろしくお願いします。
投稿者: sosukanri | 2007年01月31日 03:09
日時: 2007年01月31日 03:09