もう何年も前に納品して、幸か不幸か保守も切れていた製品の修正作業をうけてしまった。

ところが、このシステムはPHP4でつくられていて、サーバーもいまだにPHP4だったのが運のつきで、予想外に苦戦してしまった。

php5ではdomxmlが使えない

あー、すっかりこのことを忘れてた。

いまさらなんだけど、こういうのって納得できないぞ。

http://jp.php.net/manual/ja/intro.domxml.phpより

注意: この拡張モジュールは » PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.0.0.

注意: この拡張は実験的なものではありません。しかしながら、PHP 5 版は決してリリースされないでしょう。PHP 4 でのみ配布されます。 もし PHP 5 でDOM XML をサポートする必要がある場合、 DOM 拡張を使用することができます。 この domxml 拡張は DOM 拡張と互換性はありません。

php5でdomxml関数をエミュレートするクラス

というわけで、当初はphp4のサーバーを構築しようかと思ったのだが、よく考えたら、こんなもの誰かエミュレーションするクラスを作ってるんではないか?と思ったら案の定あった。ラッキー。

http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/

使い方は簡単。

if (PHP_VERSION>='5')
 require_once('domxml-php4-to-php5.php');

とするだけ。

これで、従来通りのdomxml関数が使えた。

ところで

このクラスがあるからといって、これから作るシステムでは使うのはやめましょう。