HTML特殊文字のエスケープ処理

いわゆる「サニタイズ」です。

仕事で検索文字列の強調表示処理(Googleのキャッシュ表示みたいなやつ)を作ってたのですが、記号は全て無視して検索する仕様だったので強調用に挿入したspanタグの不等号を含めて強調してしまうというバグを作りこんでしまい、HTML特殊文字のエスケープ処理について調べてみました。

とりあえずの資料はhttp://www.asahi-net.or.jp/~wv7y-kmr/note/2002-05.html
考え方はhttp://takagi-hiromitsu.jp/diary/20051227.html

改修方法は、DBから取り出した強調表示対象の文字列を丸ごとエスケープ処理し、その結果を強調してspanタグを挿入するというふうにしました。

全体を俯瞰した改修方法が取れたのは、高木浩光さんのおかげです。m(_ _)m