最新的Web開發教程
 

PHP htmlentities() Function

<PHP字符串參考

將一些字符的HTML實體:

<?php
$str = "<© W3School>";
echo htmlentities($str);
?>

代碼的HTML輸出將是(View Source)

<!DOCTYPE html>
<html>
<body>
&lt;&copy; W3S&ccedil;h&deg;&deg;&brvbar;&sect;&gt;
</body>
</html>

代碼的瀏覽器輸出將是:

<© W3School>
運行示例»

定義和用法

htmlentities()函數將字符轉換為HTML實體。

提示:要HTML實體轉換回字符,請使用html_entity_decode()函數。

提示:使用get_html_translation_table()函數返回所使用的轉換表htmlentities()


句法

htmlentities( string,flags,character-set,double_encode )

參數 描述
string 需要。 指定要轉換的字符串
flags 可選的。 指定如何處理引號的,無效的編碼和使用的文件類型。

可用報價樣式:

  • ENT_COMPAT - 默認。 編碼只有雙引號
  • ENT_QUOTES - 雙進行編碼和單引號
  • ENT_NOQUOTES - 不編碼任何報價

無效編碼:

  • ENT_IGNORE - 忽略的而不是函數返回一個空字符串編碼無效。 應避免使用,因為它可能會帶來安全隱患。
  • ENT_SUBSTITUTE -替換無效的編碼為指定的字符與Unicode替換字符U + FFFD設置(UTF-8)或&#FFFD; 而不是返回一個空字符串。
  • ENT_DISALLOWED -替換的碼點,其與一個Unicode替換字符U + FFFD指定DOCTYPE無效(UTF-8)或&#FFFD;

用於指定所使用的文檔類型附加標誌:

  • 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特定西里爾字符集
  • CP1251 - Windows專用字符集西里爾
  • CP1252 - 西歐Windows特定的字符集
  • KOI8-R - 俄語
  • BIG5 - 中國傳統,主要用在台灣
  • GB2312 - 簡體中國,國家標準字符集
  • BIG5-HKSCS - 中文與香港擴展
  • SHIFT_JIS - 日本
  • EUC-JP - 日本
  • 的MacRoman - 這是使用的Mac OS字符集

Note:無法識別的字符集將被忽略,並且在之前的PHP 5.4版本的ISO-8859-1代替。 作為PHP 5.4的,它將由UTF-8的取代被忽略。

double_encode 可選的。 一個布爾值,指定編碼現有的HTML實體與否。
  • TRUE - 默認。 將一切轉換
  • FALSE - 不會編碼現有的HTML實體

技術細節

返回值: 返回轉換後的字符串

如果字符串包含無效的編碼,它會返回一個空字符串,除非是ENT_IGNORE或ENT_SUBSTITUTE標誌設置
PHP版本: 4+
更新日誌: 字符集參數的默認值被改變為UTF-8在PHP 5

ENT_SUBSTITUTE,ENT_DISALLOWED,ENT_HTML401,ENT_HTML5,ENT_XML1和ENT_XHTML在PHP 5.4中添加

ENT_IGNORE在PHP 5.3中添加

在PHP 5.2.3中加入的double_encode參數

在PHP 4.1中添加的字符集參數

更多示例

實施例1

將一些字符的HTML實體:

<?php
$str = "Jane & 'Tarzan'";
echo htmlentities($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // Does not convert any quotes
?>

代碼的HTML輸出將是(View Source)

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

代碼的瀏覽器輸出將是:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
運行示例»

實施例2

將一些字符將西歐字符集HTML實體:

<?php
$str = "My name is yvind Åsane. I'm Norwegian.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); // Will only convert double quotes (not single quotes), and uses the character-set Western European
?>

代碼的HTML輸出將是(View Source)

<!DOCTYPE html>
<html>
<body>
My name is &Oslash;yvind &Aring;sane. I&#039;m Norwegian.
</body>
</html>

代碼的瀏覽器輸出將是:

My name is yvind Åsane. I'm Norwegian.
運行示例»

<PHP字符串參考