htmlspecialchars() 把預定義的字元 “<” (小於)和 “>” (大於)轉換為 HTML 實體
htmlspecialchars(string $string, int flags, string character-set, bool double_encode): string
預定義字元:
& (和號)成為 &
" (雙引號)成為 "
' (單引號)成為 '
< (小於)成為 <
> (大於)成為 >
引數 | 描述 |
---|---|
string | 必需。規定要轉換的字串。 |
flags | 可選。規定如何處理引號、無效的編碼以及使用哪種文件型別。 可用的引號型別: ENT_COMPAT - 預設。僅編碼雙引號。 ENT_QUOTES - 編碼雙引號和單引號。 ENT_NOQUOTES - 不編碼任何引號。 無效的編碼: ENT_IGNORE - 忽略無效的編碼,而不是讓函式返回一個空的字串。應儘量避免,因為這可能對安全性有影響。 ENT_SUBSTITUTE - 把無效的編碼替代成一個指定的帶有 Unicode 替代字元 U+FFFD(UTF-8)或者 FFFD; 的字元,而不是返回一個空的字串。 ENT_DISALLOWED - 把指定文件型別中的無效程式碼點替代成 Unicode 替代字元 U+FFFD(UTF-8)或者 FFFD;。 規定使用的文件型別的附加 flags: ENT_HTML401 - 預設。作為 HTML 4.01 處理程式碼。 ENT_HTML5 - 作為 HTML 5 處理程式碼。 ENT_XML1 - 作為 XML 1 處理程式碼。 ENT_XHTML - 作為 XHTML 處理程式碼。 |
character-set | 可選。一個規定了要使用的字符集的字串。 允許的值: UTF-8 - 預設。ASCII 相容多位元組的 8 位 Unicode ISO-8859-1 - 西歐 ISO-8859-15 - 西歐(加入歐元符號 + ISO-8859-1 中丟失的法語和芬蘭語字母) cp866 - DOS 專用 Cyrillic 字符集 cp1251 - Windows 專用 Cyrillic 字符集 cp1252 - Windows 專用西歐字符集 KOI8-R - 俄語 BIG5 - 繁體中文,主要在臺灣使用 GB2312 - 簡體中文,國家標準字符集 BIG5-HKSCS - 帶香港擴充套件的 Big5 Shift_JIS - 日語 EUC-JP - 日語 MacRoman - Mac 作業系統使用的字符集 註釋:在 PHP 5.4 之前的版本,無法被識別的字符集將被忽略並由 ISO-8859-1 替代。自 PHP 5.4 起,無法被識別的字符集將被忽略並由 UTF-8 替代。 |
double_encode | 可選。布林值,規定了是否編碼已存在的 HTML 實體。 TRUE - 預設。將對每個實體進行轉換。 FALSE - 不會對已存在的 HTML 實體進行編碼。 |
返回值:
返回被轉換的字串。如果 string 包含無效的編碼,則返回一個空的字串,除非設定了 ENT_IGNORE 或者 ENT_SUBSTITUTE 標誌。
$str = "Bill & 'Steve'";
//Bill & 'Steve' 預設。僅編碼雙引號
echo htmlspecialchars($str).'<br>';
//Bill & 'Steve' 編碼雙引號和單引號
echo htmlspecialchars($str,ENT_QUOTES);
$str1 = 'Bill & <"steve"> <script>alert(111);</script>';
// Bill & <"steve"> <script>alert(111);</script> 預設。僅編碼雙引號
echo htmlspecialchars($str1);
本作品採用《CC 協議》,轉載必須註明作者和本文連結