首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 去除 HTML 標籤原生函式深度解析:strip_tags 與 htmlspecialchars 實戰應用

     編輯:PHP 綜合知識

核心函式對比

strip_tags - 移除 HTML 與 PHP 標籤

string strip_tags(string $str)
  • 功能:移除字串中所有 HTML 與 PHP 標籤
  • 注意:若原標籤語法錯誤(如缺少 >),會回傳錯誤
  • 與 fgetss() 功能相同

htmlspecialchars - 特殊字元轉 HTML 實體

string htmlspecialchars(string $string)
  • 功能:將特殊字元轉為 HTML 實體格式(&...;)
  • 常用於留言板、表單輸出防止 XSS
  • 轉換對照表:
原字元轉換後
& (和)&
" (雙引號)"
< (小於)&lt;
> (大於)&gt;

實戰範例

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // 輸出:&lt;a href='test'&gt;Test&lt;/a&gt;
?>

實務坑點與解決方案

情境:資料庫儲存時經過轉義,讀取時需先還原才能正確移除標籤。

// 錯誤做法:直接 strip_tags 無法識別已轉義的標籤
// 正確做法:先 decode 再 strip_tags 再截取
$clean = mb_substr(strip_tags(htmlspecialchars_decode($value['n_info'])), 0, 60);

最佳實務建議

  • 輸出到 HTML 前務必使用 htmlspecialchars 防 XSS
  • 需純文字時,配合 htmlspecialchars_decode → strip_tags 使用
  • 截取中文請用 mb_substr 避免亂碼
  • PHP 8.1+ 建議搭配 htmlspecialchars($str, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8')
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved