不等号<>、アンパサンド、ダブルクォーテーション、シングルクォーテーションのエスケープ方法 †HTMLでは、不等号<>やアンパサンドは特別な意味を持ちます。
スポンサーリンク htmlspecialcharsがエスケープする文字 †htmlspecialchars関数を使うと以下の文字がエスケープ(変換)されます。
htmlspecialcharsサンプルソースコード †上記の文字がエスケープされることを確認するサンプルコードです。 <?php echo 'htmlspecialchars("<") = ' . "\t" . htmlspecialchars("<") . PHP_EOL; echo 'htmlspecialchars(">") = ' . "\t" . htmlspecialchars(">") . PHP_EOL; echo 'htmlspecialchars("&") = ' . "\t" . htmlspecialchars("&") . PHP_EOL; echo "htmlspecialchars('\"') = " . "\t" . htmlspecialchars('"') . PHP_EOL; echo 'htmlspecialchars("\'") = ' . "\t" . htmlspecialchars("'") . PHP_EOL; echo "htmlspecialchars('\"', ENT_NOQUOTES) = " . "\t" . htmlspecialchars('"', ENT_NOQUOTES) . PHP_EOL; echo 'htmlspecialchars("\'", ENT_NOQUOTES) = ' . "\t" . htmlspecialchars("'", ENT_NOQUOTES) . PHP_EOL; echo "htmlspecialchars('\"', ENT_QUOTES) = " . "\t" . htmlspecialchars('"', ENT_QUOTES) . PHP_EOL; echo 'htmlspecialchars("\'", ENT_QUOTES) = ' . "\t" . htmlspecialchars("'", ENT_QUOTES) . PHP_EOL; echo "htmlspecialchars('\"', ENT_COMPAT) = " . "\t" . htmlspecialchars('"', ENT_COMPAT) . PHP_EOL; echo 'htmlspecialchars("\'", ENT_COMPAT) = ' . "\t" . htmlspecialchars("'", ENT_COMPAT) . PHP_EOL; ?> 実行結果 †上記スクリプトの実行結果を以下に記します。 $ php htmlspecialchars.php htmlspecialchars("<") = < htmlspecialchars(">") = > htmlspecialchars("&") = & htmlspecialchars('"') = " htmlspecialchars("'") = ' htmlspecialchars('"', ENT_NOQUOTES) = " htmlspecialchars("'", ENT_NOQUOTES) = ' htmlspecialchars('"', ENT_QUOTES) = " htmlspecialchars("'", ENT_QUOTES) = ' htmlspecialchars('"', ENT_COMPAT) = " htmlspecialchars("'", ENT_COMPAT) = ' ENT_NOQUOTES, ENT_QUOTES, ENT_COMPATによる動作の違いも出力されています。 スポンサーリンク |