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

PHP 移除 HTML 標籤的三種方法與適用場景比較

     編輯:PHP 相關知識

PHP 移除 HTML 標籤的三種方法與適用場景比較

根據需求選擇:strip_tags() 通用、str_replace() 針對特定標籤、strtr() 批次字元轉換。

方法一:strip_tags() —— 內建標準函式

$html = 'Hello World';
echo strip_tags($html);           // Hello World
echo strip_tags($html, '');    // 保留  標籤:Hello World
  • 移除所有 HTML/XML/PHP 標籤。
  • 第二參數指定允許保留的標籤清單。
  • 非標準屬性(如 <a href="">)也能正確移除標籤本體。

方法二:str_replace() —— 精確移除特定標籤

function strip_br($str) {
    $str = str_replace("
", "", $str); // 移除
$str = str_replace("
", "", $str); // 移除
return strip_tags($str); // 再清理其餘標籤 }
  • 適用「只想去掉某幾個已知標籤」的情境。
  • 需自行處理大小寫、閉合寫法差異(
    /
    /
    )。

方法三:strtr() —— 批次字元/字串轉換

// 單字元對應
echo strtr("Hilla Warld", "ia", "eo"); // Hello World

// 陣列對應(字串級)
$arr = ["Hello" => "Hi", "world" => "earth"];
echo strtr("Hello world", $arr); // Hi earth
  • 陣列模式下鍵值為「原字串→目標字串」,支援多位元組字串。
  • 適合「已知標籤清單」一次性替換為空字串。
  • 注意:strtr 不支援正則,複雜 HTML 需搭配 preg_replace。

比較表

方法適用場景優點缺點
strip_tags()通用移除所有標籤、保留白名單內建、處理巢狀/屬性正確無法保留標籤內容卻移除標籤本身
str_replace()移除極少數已知標籤精確控制、可保留標籤內容需手動列舉所有變體
strtr()批次替換已知標籤/實體單次呼叫多重替換、效能佳無正則支援、複雜 HTML 易遺漏

最佳實踐建議

  1. 一般情況直接用 strip_tags($html, '


    ')
    保留安全標籤。

  2. 需「去標籤保留內容」時:strip_tags($html) 即可。
  3. 若要轉義而非移除:htmlspecialchars($html) 防 XSS。
  4. 複雜清洗(如 Office 複製貼上髒碼)建議引入 HTMLPurifier 庫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved