amazon API + PHP4
さて、もうちょっとで新サービスが開始できそうだ。
そのサービスのページの中でamazon APIをちょっとだけ使っている。
amazon APIはここに書いてあるecs.phpをそのままパクってくれば動くのだが、
サーバがPHP4なのをすっかり忘れていた。
このサンプルの中でsimplexml_load_stringという関数をつかっているのだが、こいつはPHP4では使えない。
いろいろと解決策はないかと探し回ったところ、
なんとか解決するすべを見付けた。
この互換性はおそらくかなり高いのでPHP4で動かしたい場合は、ecs.phpgだけ変えれば、あとは変更なく動くだろう。
使うのは、PEARのXML_Unserializerだ。
レンタルサーバにはPEARが入ってねーからつかえねーとあきらめてはいけない。
なんとたったの3ファイルあればこいつは使えるので、
それぞれダウンロードしてくる。
ダウンロードするファイルは、
PEAR,XML_Parser,XML_Unserializerの3プロジェクト。
最新版でOK。
それぞれの中から
PEAR.php、Parser.php、Unserializer.phpをぶっこぬき、
中を見てrequireの整合性だけ取るように修正する。
あとは、ecs.phpでUnserializer.phpをrequireし、
$this->xml = @simplexml_load_string($doc);
↓
$unserializer =& new XML_Unserializer(array("complexType"=>"object"));
$unserializer->unserialize($doc);
$this->xml = $unserializer->getUnserializedData();
と書き換える。これだけ。
超カンタンに出来るので、PHP4使うならこれがベスト。