楽天とアマゾンの商品を一発で検索できるサイトを構築してみた。
http://94ken.osadasoft.com/
やっていることは、自作ソフトのアフィリサーチと同じ。
今のところ検索のみしかできないけど、そのうち機能追加していこうかなと。
今回は初めて、PHP、Ajaxに挑戦したんだけど、苦労したところは↓こんなところ。
- Ajaxを使うにはブラウザごとの処理を分ける必要があること。
Ajaxの本を一冊購入し勉強したはいいが、その本はIEでしか動かないことが判明。
# Ajaxの本を買う場合は対応ブラウザについて注意が必要。
ネットで色々調べながら改良し作るハメに。 - 日本語はURLエンコード
これはアフィリサーチのときにハマってたので、今回は悩まずクリアできた。
PHPの場合はencodeURIComponentメソッドでURLエンコード可能。
URLエンコードした文字列をRESTのパラメータとして渡す。
楽天のリクエストURLの形式はこちら - PHPでXSLTを使用
これが一番ハマった。
PHP5の本を買って、ローカルのWindowsにPHP5をインストールし、XSLTProcessorクラスを使いXSLT変換していたが、これを、さくらインターネットにアップロードし動かしてみると動かない。
※さくらインターネットは格安レンタルサーバでスタンダードプラン以上ならPHPも使用可能
こんな感じのメッセージが出てくる。Fatal error: Cannot instantiate non-existent class: xsltprocessor in /xxx/xxx.php on line xx
調べてみるとXSLTProcessorはPHP5以降じゃないと使えないことが判明。
<2008.01.22追記>
「さくらのレンタルサーバ」スタンダード・プレミアムサービスでPHP5の提供を開始し、
2008/6にはデフォルトのPHPを4から5に引き上げるそうです。
セキュリティ的にもPHP5を推奨しているようです。
</2008.01.22追記>で、使用しているさくらインターネットのPHPのバージョンが4.xであったことが原因であった。
さくらインターネットに限らず、世の中のPHPレンタルサーバーが殆ど4.xを使用している。
PHP5はあったとしても高額なものが多い。ローカルでPHP5をインストールする方法もあって、ネットにも設定方法なども載っていたが、自力では環境設定が出来ず断念。
で、そもそもPHPでXSLTを使う方法から調べなおしたところ、PHP4でもXSLTが使えることが分かった。(こんな初歩的なことに気付かなかった)
ただ、PHP4とPHP5で使用するクラスが異なるようで、PHP4の場合は、domxml_xslt_stylesheet_fileなんかでXSLを読み込んで使う必要があった。 - XSLTの使い方
あとは、前にもハマったXSLの書き方ぐらい。
2ヶ月ぐらいかかってようやく、それっぽいのが出来てきたかな。
http://94ken.osadasoft.com/