PHP String htmlspecialchars()函數
htmlspecialchars()函數將特殊字符轉換為HTML實體。愛掏網 - it200.com它是PHP的內置函數,用于將所有預定義的字符轉換為HTML實體。愛掏網 - it200.com預定義的字符包括:
&
(和號)轉換為&
"
(雙引號)轉換為"
'
(單引號)轉換為'
<
(小于號)轉換為<
>
(大于號)轉換為>
有一個字符串函數htmlspecialchars_decode(),它是htmlspecialchars()函數的反向操作。愛掏網 - it200.comhtmlspecialchars_decode()函數的主要目的是將特殊的HTML實體轉換回字符。愛掏網 - it200.comhtmlspecialchars()函數和htmlspecialchars_decode()函數是互為相反的。愛掏網 - it200.comhtmlspecialchars()函數的語法如下:
String htmlspecialchars ( string,flags, encoding,double_encode );
參數
$string: 此參數包含輸入字符串。愛掏網 - it200.com
$flags: 基本上,此參數用于保存一個或多個標志,用于指定如何處理無效的代碼單元序列、引號和所使用的文檔類型。愛掏網 - it200.comENT_COMPAT | ENT_HTML401 是默認值。愛掏網 - it200.com下表中給出了可用的標志常量:
可用的標志常量
標志常量 | 描述 |
---|---|
ENT_IGNORE | 它丟棄驗證失敗的字符序列,而不會返回空字符串。愛掏網 - it200.com |
ENT_NOQUOTES | 它不會轉換任何字符串,保留單引號和雙引號不變。愛掏網 - it200.com |
ENT_SUBSTITUDE | 它會用Unicode替換字符U+FFFD(UTF-8)或&#FFFD替換驗證失敗的字符序列,而不是返回空字符串。愛掏網 - it200.com |
ENT_DISALLOWED | 它會用給定文檔類型的Unicode替換字符來替換驗證失敗的字符序列,而不是保留它們。愛掏網 - it200.com |
ENT_HTML401 | 它處理代碼作為HTML 4.01版本。愛掏網 - it200.com |
ENT_XML1 | 它處理代碼作為XML 1。愛掏網 - it200.com |
ENT_XHTML | 它處理代碼作為XHTML。愛掏網 - it200.com |
ENT_HTML5 | 它處理代碼作為HTML5。愛掏網 - it200.com |
$encoding
: 這是一個可選參數,定義在字符轉換時使用的編碼。愛掏網 - it200.com編碼的默認值因PHP版本而異。愛掏網 - it200.com
在PHP 5.6及以上版本中,默認值使用 default_charset 配置選項,而PHP 5.4和5.5使用UTF-8。愛掏網 - it200.com
$double_encode
: 當關閉double_encode時,PHP無法編碼現有的HTML實體。愛掏網 - it200.com默認情況下會轉換所有字符。愛掏網 - it200.com
描述
htmlspecialchars ( string string [ , intflags = ENT_COMPAT | ENT_HTML401 [ , string
encoding = ini_get ("default_charset") [ , booldouble_encode = TRUE ] ] ] ) : string
有一些字符在HTML中具有特殊意義,如果需要保留它們的含義,必須使用HTML實體來表示。愛掏網 - it200.comhtmlspecialchars()函數會返回進行這些轉換后的字符串。愛掏網 - it200.com如果我們需要翻譯所有具有關聯命名實體的輸入子字符串,則可以使用htmlentities()函數替代htmlspecialchars()。愛掏網 - it200.com
htmlspecialchars()函數返回的值
它返回轉換后的字符串,如果輸入字符串無效或包含無效的代碼序列,則返回一個空字符串。愛掏網 - it200.com
htmlspecialchars()的示例
以下是一些htmlspecialchars()函數的示例。愛掏網 - it200.com
示例1
<? php
//string conversion example of htmlspecialchars () function
str = "This is <i>italic</i> text.";
echo htmlspecialchars(str, ENT_QUOTES); //Will convert both single and double-quotes.
?>
瀏覽器輸出
下面給出的輸出是 瀏覽器輸出 的代碼。愛掏網 - it200.com
HTML 輸出
上述程序的 HTML 輸出將會如下所示-
<DOCTYPE html>
<html>
<body>
This is _italic_ text.
</body>
</html>
可以在瀏覽器的源文件中查看HTML輸出。愛掏網 - it200.com打開瀏覽器 -> 更多工具 -> 開發者工具 -> 源文件,并按下Ctrl+P打開源文件。愛掏網 - it200.com
示例2
<?php
str1= "This is 'PHP'&'Java' program.";
echo htmlspecialchars(str1, ENT_COMPAT); //It will converts only double quotes.
echo "</br>";
echo htmlspecialchars(str1, ENT_QUOTES); // Converts both double and single quotes
echo "</br>";
echo htmlspecialchars(str1, ENT_NOQUOTES); //It will not convert any quotes.
?>
瀏覽器輸出
下面提供的輸出是代碼的 瀏覽器輸出 。愛掏網 - it200.com
HTML 輸出
可以通過瀏覽器的查看源代碼來查看上述程序的 HTML 輸出 ,即 瀏覽器- > 更多工具 – > 開發者工具 – > 源代碼,并按Ctrl+P打開查看源文件。愛掏網 - it200.com
示例3
<?
str= '"PHP" is much easier than "Java".'. "\n";
echo htmlspecialchars(str); //will converts only double quotes.
echo "</br>";
echo htmlspecialchars(str, ENT_QUOTES); //will converts both single and double quotes.
echo "</br>";
echo htmlspecialchars(str, ENT_NOQUOTES); //will not convert neither single nor double-quotes.
echo "</br>";
?>
瀏覽器輸出
上述程序在瀏覽器上的輸出如下所示:
HTML 輸出
以下程序的 HTML 輸出將如下所示。愛掏網 - it200.com
<DOCTYPE html>
<html>
<body>
"PHP" is much easier than "Java".
</br>"PHP" is much easier than "Java".
</br>"PHP" is much easier than "Java".
</br>
</body>
</html>
htmlspecialchars()和htmlentities()函數之間的區別
htmlspecialchars()函數和htmlentities()函數唯一的區別在于htmlspecialchars()函數將特殊字符轉換為HTML實體,而htmlentities()函數將所有適用的字符轉換為HTML實體。愛掏網 - it200.com