PHP版HTML::FillInForm
まだまだ続きます。
PHP版SQL::Abstract - Unknown::Programming
PHP版Data::Page(::Navigation) - Unknown::Programming
というわけで第三弾。
先日の記事で「HTML::FillInFormの移植もお願い!」とお願いされてたのとはまったく関係なく作りました^^。
で、HTML::FillInFormなんですが、実はもうすでに作ってらっしゃる方がいます。
2LBOX – Online Tool Reviews – Testing online tools that makes your life easier.
ただ、ignore_fieldsやtargetなどのいくつかのオプションが足りないのと、データを埋め込む時にchecked="checkded"ではなくcheckedだったりとうーむと思う部分があったので結局自分で作りました。
ほぼ完全に移植できたと思います。
当初PEARのXML_HTMLSaxを使って実装しようかなと思ったのですが、使い勝手が微妙だったので結局自分でパースしました。
Perl版HTML::FillInFormとの違いとしてfillの引数に渡す値がscalarrefではなくscalarになることです。
<?php $output = $fil->fill(array( 'scalar' => $html, 'fdat' => $fdat ));
一応Perlとの互換のためscalarrefでも動くようにはなっています。
また、fobjectにも対応しているのでPerlのCGIのparamメソッドのような動きをするオブジェクトを渡すこともできるようになっています。
もし使ってくれるような方がいましたらぜひぜひバグ報告お願いしまつ!
ま、とりあえず自社では使うんでバグ発見次第修正はしていきますが。
2008/03/04追記: