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

PHP 刪除 HTML 標籤的三種實用方法總結

     編輯:PHP 相關知識

在 PHP 開發中,移除字符串中的 HTML 標籤是常見需求(如內容摘要、防 XSS、數據清洗)。本文整理三種主流方案,並說明適用場景與優缺點。

方法一:針對性替換特定標籤(如 <br>)

若僅需去除某幾個已知標籤,可用 str_replace 先處理,再配合 strip_tags 兜底:

<?php
function strip($str) {
    $str = str_replace("<br>", "", $str); // 先移除換行標籤
    // $str = htmlspecialchars($str); // 如需轉義而非刪除,可取消註釋
    return strip_tags($str); // 刪除其餘所有標籤
}
?>

優點:可保留特定標籤邏輯;缺點:需預知目標標籤,通用性弱。

方法二:內置函數 strip_tags()(推薦通用場景)

PHP 原生提供 strip_tags(string $string, array|string|null $allowable_tags = null),一行代碼搞定:

<?php
echo strip_tags("Hello <b>World</b>"); // 輸出:Hello World

// 非標準 HTML 也能正確處理
echo strip_tags('<a href=">">cftea</a>'); // 輸出:cftea

// 保留允許的標籤(第二參數)
$str = 'www<p>dreamdu</p>.com';
echo htmlspecialchars($str) . "<br>"; // 顯示原始碼
echo strip_tags($str, '<p>'); // 僅保留 <p> 標籤
?>

優點:原生、高效、支持白名單保留標籤;注意:對屬性(如 onclick)不會過濾,若需防 XSS 請配合 htmlspecialchars。

方法三:使用 strtr() 字符轉換(特殊場景)

strtr 可按字符或數組映射替換,適合「已知少量特殊字符替換」而非完整標籤清洗:

<?php
// 語法一:strtr(string, from, to)
echo strtr("Hilla Warld", "ia", "eo"); // Hello World

// 語法二:strtr(string, array)
$arr = ["Hello" => "Hi", "world" => "earth"];
echo strtr("Hello world", $arr); // Hi earth
?>

適用場景:簡單字符映射替換(如全半角轉換、特定實體編碼),不適合 完整 HTML 標籤移除。

總結建議

方法適用場景推薦指數
strip_tags()通用 HTML 標籤移除,可保留白名單標籤★★★★★
str_replace + strip_tags()需預處理特定標籤(如 <br> 轉換)★★★★☆
strtr()極簡字符級替換,非標籤清洗首選★★☆☆☆

安全提示:若輸出到 HTML 頁面,務必在 strip_tags 後配合 htmlspecialchars() 或使用成熟的 HTML Purifier 庫,防範 XSS 攻擊。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved