PHP html_entity_decode() ฟังก์ชัน

ตัวอย่าง

แปลงตัวอักษรที่ใช้ตัวเลขทาง HTML ให้เป็นตัวอักษร:

<?php
$str = "<© W3Sçh°°¦§>";
echo html_entity_decode($str);
?>

ออกมาด้วย HTML ตามต่อไปนี้ (ดูต้นฉบับ):

<!DOCTYPE html>
<html>
<body>
<? W3S?h????>
</body>
</html>

การแสดงทางบราวเซอร์ของโค้ดดังกล่าว:

<? W3S?h????>

คำนำออกและวิธีใช้

html_entity_decode() ฟังก์ชันแปลงจากตัวเลข HTML มาเป็นตัวอักษร

html_entity_decode() ฟังก์ชันคือ htmlentities() 函數的反函數。

語法

html_entity_decode(string,flags,character-set)
參數 描述
string 必需。規定要解碼的字串。
flags

選項。規定如何處理引號以及使用哪種文檔類型。

可用的引號類型:

  • ENT_COMPAT - 默認。僅解碼雙引號。
  • ENT_QUOTES - 解碼雙引號和單引號。
  • ENT_NOQUOTES - 不解碼任何引號。

規定所使用文檔類型的附加 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 替代。

技術細節

返回值: 返回被轉換的字符串
PHP 版本: 4.3.0+

更新日誌:

版本 說明
PHP 5 character-set 參數的默認值改為 UTF-8。
PHP 5.4

新增了用于規定翻譯表適用的文檔類型的附加 flags:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 เพิ่มการสนับสนุนการเข้ารหัสมากี่บิต

ตัวอย่างเพิ่มเติม

ตัวอย่าง 1

แปลงตัวอักษรที่ใช้ตัวเลขทาง HTML ให้เป็นตัวอักษร:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // แปลงอักษรนิรุกต์ที่เป็นบรรทัดนำเท่านั้น
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // แปลงอักษรนิรุกต์ทั้งบรรทัดนำและหลัง
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // ไม่แปลงใดๆ ของอักษรนิรุกต์
?>

การแสดงทาง HTML ของโค้ดดังกล่าว (ดูรหัสที่แสดง):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

การแสดงทางบราวเซอร์ของโค้ดดังกล่าว:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

ตัวอย่าง 2

แปลงตัวอักษรที่ใช้ตัวเลขทาง HTML ด้วยการใช้ชุดอักษรของยุโรปตะวันตก:

<?php
$str = "My name is Øyvind Åsane. I'm Norwegian.";
echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1");
?>

การแสดงทาง HTML ของโค้ดดังกล่าว (ดูรหัสที่แสดง):

<!DOCTYPE html>
<html>
<body>
My name is ?yvind ?sane. I'm Norwegian.
</body>
</html>

การแสดงทางบราวเซอร์ของโค้ดดังกล่าว:

My name is ?yvind ?sane. I'm Norwegian.