/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

May 7, 2010

Even small things can't kill me

■フォーム縺?HTML特觸??文字を表示する

DBからのデータをtextareaに表示する時(inputへもそうだが)、「&lt;」などエスケープされたHTML特觸??文字があると「<」などテキストへ解釈されて表示されてしまう。

これはフォームの動作なので臀??方がないが、フォームの送信は表示したものを送るようになっているので、DBにエスケープして入れていた文字が、いつのまにか文字化けを起こしたりすることになる。

つまり、DBから「&lt;」などエスケープされたHTML文字をtextareaに表示するときは、事前に「&amp;lt;」などに藹??觸??しておく必要がある。

一度「&reg;」を「マ繝?R」と表示したものを送信し直しても特に問題は起こらないとすると以下縺?4つの処理をしておけば良い事になる。

 $ent = str_replace("&amp;", "&amp;amp;", $ent);
 $ent = str_replace("&lt;", "&amp;lt;", $ent);
 $ent = str_replace("&gt;", "&amp;gt;", $ent);
 $ent = str_replace("</textarea>", "&lt;/textarea&gt;", $ent);

内容に自信はないが俺のトラブルは解消した

twitter
Hatena
Google Buzz
newsing
Yahoo!
Buzzurl
Technorati
del.icio.us
Choix
Iza!
Livedoor Clip
Facebook
Evernote
 

Posted by funa : 01:08 AM | Web | Comment (0) | Trackback (0)