关于PHP htmlspecialchars函数

关于htmlspecialchars


htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string

・将特殊字符转换为HTML实体。
・第二个参数是一个标志常量,用于指定引号、无效的字符单元序列以及文档处理方式。默认为ENT_COMPAT | ENT_HTML401。

フラグ定数名説明ENT_COMPATダブルクオートはエスケープするが、シングルクオートはしないENT_QUOTESダブルクオートもシングルクオートも両方エスケープするENT_NOQUOTESダブルクオートもシングルクオートもエスケープしないENT_HTML401HTML 4.01 として処理ENT_HTML5HTML 5 として処理

转换前和转换后

< → < > → >

& → &

” → ”

如果在第二个参数中指定ENT_QUOTES,则还会执行以下转换。

‘ → ‘ or ‘

・第三个参数定义了字符编码方式。

转换的原因

    • XSSを防ぐため。

 

    テキストで入力されたものを正しくHTMLに出力するため。

请举一个例子

//次の様なラッパー関数を準備する
function h($str) {
  return htmlspecialchars($str, ENT_QUOTES|ENT_HTML5, "UTF-8");
}
// HTMLに出力する際
echo h('<hoge>');
广告
将在 10 秒后关闭
bannerAds