■フォームへHTML特殊文字を表示する
DBからのデータをtextareaに表示する時(inputへもそうだが)、「<」などエスケープされたHTML特殊文字があると「<」などテキストへ解釈されて表示されてしまう。
これはフォームの動作なので仕方がないが、フォームの送信は表示したものを送るようになっているので、DBにエスケープして入れていた文字が、いつのまにか文字化けを起こしたりすることになる。
つまり、DBから「<」などエスケープされたHTML文字をtextareaに表示するときは、事前に「&lt;」などに変換しておく必要がある。
一度「®」を「マルR」と表示したものを送信し直しても特に問題は起こらないとすると以下の4つの処理をしておけば良い事になる。
$ent = str_replace("&", "&amp;", $ent);
$ent = str_replace("<", "&lt;", $ent);
$ent = str_replace(">", "&gt;", $ent);
$ent = str_replace("</textarea>", "</textarea>", $ent);
内容に自信はないが俺のトラブルは解消した