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

PHP strip_tags() 函式深度解析與實戰技巧

     編輯:PHP 綜合知識

函式語法

strip_tags(string $string, array|string|null $allowed_tags = null): string
  • $string:必填,待處理字串
  • $allowed_tags:選填,允許保留的標籤(字串或陣列),預設全移除

核心特性

  • ✅ 永遠移除 HTML 註解(<!-- -->),無法透過 allowed_tags 保留
  • ✅ 移除標籤及其內容(如 <script>、<style>)
  • ⚠️ 遇到不完整/錯誤標籤可能產生非預期結果
  • ⚠️ 不保證輸出安全,需搭配 htmlspecialchars()

實戰範例

基礎用法

$str = "Hello <b><i>world</i></b>!";
echo strip_tags($str);           // Hello world!
echo strip_tags($str, '<b>');    // Hello <b>world</b>!

陣列式允許標籤(PHP 7.4+)

$html = '<p>段落</p><span>行內</span><div>區塊</div>';
$allow = ['p', 'span'];
echo strip_tags($html, $allow);  // <p>段落</p><span>行內</span>區塊

搭配 htmlspecialchars 確保安全

function safeOutput($html, $allowed = []) {
    $stripped = strip_tags($html, $allowed);
    return htmlspecialchars($stripped, ENT_QUOTES, 'UTF-8');
}

進階應用:判斷字串是否含 HTML 標籤


function hasHtmlTags($str) {
    return $str !== strip_tags($str);
}

// 測試
var_dump(hasHtmlTags('<p>內容')); // true
var_dump(hasHtmlTags('純文字'));    // false

效能與替代方案

大量資料處理時,strip_tags() 速度尚可。若需更嚴格的 HTML 清理(如防 XSS),建議使用 HTML Purifier 等專業庫。

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