1. 程式人生 > >關於在php中html標籤的轉換問題的解決,轉義與反轉義

關於在php中html標籤的轉換問題的解決,轉義與反轉義

 很多朋友在寫php的時候,難免會遇到需要將html標籤進行轉義儲存。比如存入資料庫、xml檔案等。而儲存進去後,讀取出來則需要轉換成html輸出。網上有許多人編寫的轉換函式,很長很難懂。其實php早就自帶有這樣的函式。大可不必自己編寫。

下面分別介紹這兩個函式。

1.htmlentities()函式:

說明:將html標籤轉換成特殊字元。例如將<script>轉換成"&lt;script&gt;"

例子:

  1. // An imaginary article submission from a bad user  
  2. //  it will redirect anyone to example.com if the code is run in a browser
      
  3. $userInput = "I am going to hax0r your site, hahaha!  
  4.     <script type=&apos;text/javascript&apos;>  
  5.     window.location = &apos;http://www.example.com/&apos;  
  6.     </script>&apos;";  
  7. //Lets make it safer before we use it  
  8. $userInputEntities = htmlentities($userInput
    );  
  9. //Now we can display it  
  10. echo $userInputEntities;  

由於最近csdn的控制元件比較垃圾,請將上面的$apos改成單引號。---呼!

上面的語句執行後,將生成下面的結果

  1. I am going to hax0r your site, hahaha!  
  2.     <script type=&apos;text/javascript&apos;>  
  3.     window.location = &apos;http://www.88web.org/&apos;  
  4.     </script
    >&apos;  

2.html_entity_decode()函式

說明:將htmlentities()函式轉義過的字串轉成html標籤。

例子:

  1. $orig = "I&apos;ll /"walk/" the <b>dog</b> now";  
  2. $a = htmlentities($orig);  
  3. $b = html_entity_decode($a);  
  4. echo $a// I will "walk" the <b>dog</b> now  
  5. echo $b// I will "walk" the <b>dog</b> now