amazon API + PHP4

さて、もうちょっとで新サービスが開始できそうだ。

そのサービスのページの中でamazon APIをちょっとだけ使っている。

amazon APIここに書いてあるecs.phpをそのままパクってくれば動くのだが、

サーバがPHP4なのをすっかり忘れていた。

このサンプルの中でsimplexml_load_stringという関数をつかっているのだが、こいつはPHP4では使えない。
いろいろと解決策はないかと探し回ったところ、
なんとか解決するすべを見付けた。
この互換性はおそらくかなり高いのでPHP4で動かしたい場合は、ecs.phpgだけ変えれば、あとは変更なく動くだろう。

使うのは、PEARXML_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使うならこれがベスト。