M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年4月28日 23:41

HTML::Scrubberを入れたがHTML::EscapeEvilがすでに入っていた

このエントリーをはてなブックマークに追加 mixiチェック

作っているのはブログシステムみたいなもんで、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

コメントする