HTML::FillInForm::Lite::JA - HTMLフォームにデータを充填する
The document describes HTML::FillInForm version 0.10
use HTML::FillInForm::Lite; use CGI; my $q = CGI->new(); my $h = HTML::FillInForm::Lite->new(); $output = $h->fill(\$html, $q); $output = $h->fill(\@html, \%data); $output = $h->fill(\*HTML, \&my_param); $output = $h->fill('t.html', [$q, \%default]); $output = $h->fill(\$html, $q, fill_password => 0, # it is default ignore_fields => ['foo', 'bar'], target => $form_id, ); # Moreover, it accept any object as data # (these classes come form Class::DBI's SYNOPSIS) my $artist = Music::Artist->insert({ id => 1, name => 'U2' }); $output = $h->fill(\$html, $artist); my $cd = Music::CD->retrieve(1); $output = $h->fill(\$html, $cd);
このモジュールはHTMLのフォームにデータを充填します。 これはHTML::FillInFormを再実装したものです。
HTML::FillInForm
HTML::FillInFormはHTML::Parserによって実装されていますが、 このモジュールは正規表現ベースで実装されています。 その結果、HTML::FillInForm::LiteはHTML::FillInFormより最大で2倍ほど 高速に動作します。
HTML::Parser
HTML::FillInForm::Lite
HTML::FillInForm::Liteのインスタンスを作成します。
受け付けるオプションは以下の通りです。 オプションに未定義値を渡すと、そのオプションそのものを無視します。
このオプションを真に設定すると、パスワードも充填されるようになります。
このパスワードの効果はHTML::FillInFormと同じですが、 このオプションを指定しなければ、HTML::FillInForm::Liteは パスワードフィールドを無視します。
指定したフォームフィールドを無視するようにします。
form_idをもつフォームのみを処理対象にします。
オプションを指定しないか、1(真)を指定した場合、テキストフィールドに充填される 値はHTMLエスケープされます。
1
すでに値がHTMLエスケープされている場合は、0(偽)を指定してください。
0
サブルーチンリファレンスを指定すると、値のエスケープにそのサブルーチンを使います。
このオプションはHTML::FillInFormには存在しません。
このオプションに1(真)を指定すると、状態を持つフィールド(つまり、radio・ checkbox・select)の値にあるHTML実体参照がデコードされるようになります。
サブルーチンリファレンスを指定すると、実体参照のデコードに そのサブルーチンを使います。
ただし、値に名前による実体参照が含まれている場合は、そのデコードに HTML::Entitiesを使います。
HTML::Entities
souceをform_dataで充填します。 オプションはnew()と同じです。
new()
このメソッドはクラスメソッドとしてもインスタンスメソッドとしても 呼び出せます。
fill()を同じoptionsで何度も呼び出す場合は、 fill()の前にあらかじめnew()でインスタンスを作っておくと少し高速になります。 しかし、同じインスタンスにつき一度しか呼び出さないなら、インスタンスを作った としてもパフォーマンスは上がりません。
fill()
このモジュールはHTML::FillInFormバージョン2の新しい構文のみ実装しています。
このモジュールはXHTML1.xを処理するように設計されています。 HTML4.xの大部分もサポートはしていますが、一部制限があります。
まず、HTML4では許されている属性名の省略はできません。
たとえば:
<INPUT TYPE=checkbox NAME=foo CHECKED> - NG. <INPUT TYPE=checkbox NAME=foo CHECKED=CHECKED> - OK, ただし古い書き方 <input type="checkbox" name="foo" checked="checked" /> - OK, 正しいXHTML
さらに、このモジュールは常に属性値の大文字・小文字を区別します。 上記の例では、type属性の値は小文字でなければなりません。
type
さらに、閉じタグは省略できません。たとえば以下のようなコードは無視します。
<select name="foo"> <option>bar <option>baz </select>
正しいXHTMLで書けばこれらの問題は起こりません。
HTML::FillInForm::Liteはコメントやその他の無視すべきものを理解しないので、 処理できるものは全て処理します。
このことが問題になることがあります。たとえば以下のコード:
<script> document.write("<input name='foo' />") </script>
これは次のような誤ったコードに置換されます:
<script> document.write("<input name='foo' value="bar" />") </script>
このような問題を避けるためにignore_fieldsオプションが使えます。
ignore_fields
No bugs have been reported.
Please report any bug or feature request to <gfuji(at)cpan.org>, or through http://rt.cpan.org.
HTML::FillInForm.
HTML::FillInForm::Lite.
HTML::FillInForm::Lite::Compat.
Goro Fuji (藤 吾郎) <gfuji(at)cpan.org>
Copyright (c) 2008 Goro Fuji, Some rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install HTML::FillInForm::Lite, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTML::FillInForm::Lite
CPAN shell
perl -MCPAN -e shell install HTML::FillInForm::Lite
For more information on module installation, please visit the detailed CPAN module installation guide.