php怎麼將html實體跳脫為字元

2023-01-07 18:00:28

跳脫方法:1、用htmlspecialchars_decode()函數,可將5個預定義的HTML實體轉為字元,語法「htmlspecialchars_decode(string,flags)」;2、用html_entity_decode()函數,可將指定HTML實體轉為字元,語法「html_entity_decode(string,flags,character-set)」。

本教學操作環境:windows7系統、PHP8版、DELL G3電腦

php提供了 兩個函數來將html實體跳脫為字元

  • htmlspecialchars_decode()函數

  • html_entity_decode()函數

下面就來了解一下這兩個函數。

方法1:使用htmlspecialchars_decode()函數將html實體跳脫為字元

htmlspecialchars_decode() 函數把一些預定義的 HTML 實體轉換為字元。

會被解碼的 HTML 實體是:

  • & 解碼成 & (和號)

  • " 解碼成 " (雙引號)

  • ' 解碼成 ' (單引號)

  • &lt; 解碼成 < (小於)

  • &gt; 解碼成 > (大於)

語法:

htmlspecialchars_decode(string,flags)
登入後複製
引數描述
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 處理程式碼。

範例:把預定義的 HTML 實體 "&lt;"(小於)和 "&gt;"(大於)轉換為字元:

<?php
$str = "This is some &lt;b&gt;bold&lt;/b&gt; text.";
echo htmlspecialchars_decode($str);
?>
登入後複製

1.png

htmlspecialchars_decode() 函數只能跳脫5種HTML 實體,那麼其他HTML 實體想要跳脫要怎麼處理?可以使用html_entity_decode()函數。

方法2:使用html_entity_decode()函數將html實體跳脫為字元

html_entity_decode() 函數把 HTML 實體轉換為字元。

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
$str = "&lt;&copy; W3CS&ccedil;h&deg;&deg;&brvbar;&sect;&gt;";
echo html_entity_decode($str);
?>
登入後複製

輸出:

<© W3CSçh°°¦§>
登入後複製

推薦學習:《》

以上就是php怎麼將html實體跳脫為字元的詳細內容,更多請關注TW511.COM其它相關文章!