PHP htmlspecialchars_decode 函數功能與用法

PHP htmlspecialchars_decode 函數功能可以把 HTML 實體符號轉換回原本的 HTML 符號,例如 &lt; 用 htmlspecialchars_decode 函數可以轉換回 < 的符號,而 &gt; 則轉換回 > 符號,htmlspecialchars_decode 函數對應的是 htmlspecialchars 函數,當 PHP 設計師或系統利用 htmlspecialchars 函數將網友輸入的 HTML 特殊符號轉換後存入資料庫,再撈出來要顯示在網頁之前都必須先做一個轉換回 HTML 特殊符號的動作,而這個轉換所用的就是 PHP htmlspecialchars_decode 函數。

PHP htmlspecialchars_decode 函數基本語法
string htmlspecialchars_decode( $string , $quote_flags )
此函數共有兩個參數可以使用,第一個參數 $string 是原始字串,就是可能包含有 HTML 特殊符號的字串,必要項目,第二個參數則是用來設定函數要對某些特殊符號進行轉換與否,可以設定的參數值整理如下
  • ENT_COMPAT:預設值,會轉換雙引號,不轉換單引號
  • ENT_QUOTES:單引號與雙引號都會轉換
  • ENT_NOQUOTES:無論是單引號還是雙引號都不轉換
接著我們就把這個 htmlspecialchars_decode 函數套用到範例中。

PHP htmlspecialchars_decode 函數的轉換範例
<?php
$OriginalString="&lt;a href=&quot;#&quot;&gt;Test Link&lt;/a&gt;";
echo $OriginalString;
echo '<br>';
echo htmlspecialchars_decode($OriginalString,ENT_QUOTES);
?>
範例的輸出結果
<a href="#">Test Link</a>
Test Link
我們先準備了一個含有 HTML 特殊符號的字串 $OriginalString,然後先用 echo 輸出一次原始字串,由於該字串含有的 HTML 特殊符號並沒有被轉換回可執行的 HTML 符號,所以輸出的結果就是一串 HTML 碼,這個 HTML 碼其實就是超連結的程式碼,範例的第二次輸出原始字串就套用了 htmlspecialchars_decode 函數,可以發現輸出的結果變成一個可執行的 HTML 超連結,這就是此函數的實際操作方式與功能,如果要返回去,也就是將可執行的 HTML 碼轉變成不可執行就要用 htmlspecialchars 函數

延伸閱讀參考資料
  1. PHP htmlspecialchars_decode - Wibibi
  2. PHP: htmlspecialchars_decode - Manual
© Copyright webtech.tw Since 2010