HTML::Scrubberを入れたがHTML::EscapeEvilがすでに入っていた
スポンサードリンク
作っているのはブログシステムみたいなもんで、JavaScriptのリッチテキストエディタから生成されるHTMLをDBに流し込めばいいんだけどリッチテキストエディタからの出力を全面的に信用してはいけないという大原則に基づいて、受信する側でもHTMLの妥当性を見なきゃいかんわけです。
そこで、HTML::Scrubberというモジュールを入れて
# HTMLプリプロセッサ sub _preprocess_text { use HTML::Scrubber; my $html = shift; my $scrubber = HTML::Scrubber->new; $scrubber->allow( qw/ a b i li p ul / ); $html = $scrubber->scrub( $html ); return $html; }
こんな感じにしたが、このプログラム作り始めがやっぱり3年ぐらい前で、以下のようなコードが埋まっていた。同じ動作。
# HTMLプリプロセッサ sub _preprocess_text { use HTML::EscapeEvil; my $html = shift; my $escapeevil = HTML::EscapeEvil->new; $escapeevil->add_allow_tags( qw/ a b i li p ul / ); $escapeevil->parse( $html ); $html = $escapeevil->filtered_html; return $html; }
それで、どっちを使うかってことなんですけれども、うちでメインで使っているCentOS 5では、RPMforgeから、HTML::Scrubberがインストールできるので、今後はHTML::Scrubberを使おうかなーと思います。本文中に両方書いておけば、今後検索で来た人も迷うことは少なくなるなるはずだよね。
投稿 大野 義貴 [] | 固定リンク |
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3205
コメントする