htmlspecialchars

htmlspecialchars() 函式把一些預定義的字元轉換為 HTML 實體。語法為:htmlspecialchars(string,quotestyle,character-set). PHP 從 5.4.0 版本開始把htmlspecialchars() 函式的第三個參數字元串編碼的默認值改成了 UTF-8,為了使 PHP 5.4 之前環境中編寫的代碼能夠向前兼容,建議調用 htmlspecialchars 函式的的時候都提供字元串編碼參數。比如說PHP代碼中的中文編碼正好是 GB2312 編碼,那么就得htmlspecialchars(string, quotestyle ,'GB2312');

術語介紹

名詞簡介

htmlspecialchars

字元

預定義的字元是:

&(和號) 成為&

" (雙引號) 成為 "

' (單引號) 成為 '

< (小於) 成為 <

> (大於) 成為 >

使用語法

htmlspecialchars(string,quotestyle,character-set)
參數 描述
string 必需。規定要轉換的字元串。
quotestyle 可選。規定如何編碼單引號和雙引號。
ENT_COMPAT - 默認。僅編碼雙引號。
ENT_QUOTES - 編碼雙引號和單引號。
ENT_NOQUOTES - 不編碼任何引號。
character-set 可選。字元串值,規定要使用的字元集。
ISO-8859-1 - 默認。西歐。
ISO-8859-15 - 西歐(增加 Euro 符號以及法語、芬蘭語字母)。
UTF-8 - ASCII 兼容多位元組 8 比特 Unicode
cp866 - DOS 專用 Cyrillic 字元集
cp1251 - Windows 專用 Cyrillic 字元集
cp1252 - Windows 專用西歐字元集
KOI8-R - 俄語
GB2312 - 簡體中文,國家標準字元集
BIG5 - 繁體中文
BIG5-HKSCS - Big5 香港擴展
Shift_JIS - 日語
EUC-JP - 日語

更多了解HTMLSpecialChars

HTMLSpecialChars重要性

如果不用 HTMLSpecialChars,就會導致讀取時,要把" <script>"之類的HTML標籤“原本”的輸出,而這一輸出就有漏洞了,萬一那個插入資料庫的人是黑客,插入的不是一般的字元串,而是 “ <script> <b> <body>”等等之類的東西,讀取後,就是一個HTML文檔之類的東西,這樣,他可以利用這個漏洞欺騙其他人,或者借這個漏洞攻擊別人等等,搞個框架跳轉到某一網站等等操作。

提示和注釋

提示:無法被識別的字元集將被忽略,並由 ISO-8859-1 代替。

例子

<html> <body> <?php $str = "John & 'Adams'"; echo htmlspecialchars($str, ENT_COMPAT); echo "<br />"; echo htmlspecialchars($str, ENT_QUOTES); echo "<br />"; echo htmlspecialchars($str, ENT_NOQUOTES); ?> </body> </html> 代碼: <?php
$str="<p>123</p>";
echo $str."<br/>";
echo htmlspecialchars($str);
?>
結果: 123
<p>123</p>

瀏覽器輸出:

John & 'Adams' John & 'Adams' John & 'Adams'

如果在瀏覽器中查看原始碼,會看到這些 HTML:

<html> <body> John & amp; 'Adams'<br /> John & amp; & #039; Adams& #039; <br /> John & amp; 'Adams' </body> </html>

相關詞條

相關搜尋

熱門詞條

聯絡我們