基本的に、MySQLデータベースからのデータを表示する上で、htmlspecialchars()
一重引用符と二重引用符を安全なエンティティに変換する必要がある以下の関数があります。私が抱えている問題は、ソースコードの表示にあります。これは< > &
、一重引用符と二重引用符を変換するためにも必要な場合にのみ変換されます。
//sanitize data from db before displaying on webpage
function htmlsan($htmlsanitize){
return $htmlsanitize = htmlspecialchars($htmlsanitize, ENT_QUOTES, 'UTF-8');
}
次に、たとえば使用したい場合は、次のようにします。
htmlsan($row['comment']);
一重引用符と二重引用符を変換しない理由を誰かに教えてもらえますか?
アップデート
奇妙なことhtmlsan()
に、電子メールのコメントに使用されており、電子メールのソースコードを表示すると、それらが変換されますが、Webページに表示するときにデータベースからの一重引用符/二重引用符は変換されないようです。データベース照合もutf8_general_ciに設定されており、データベース接続などでutf8を使用していることを宣言します。