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

PHP strip_tags() 函數詳解:移除 HTML、XML 與 PHP 標籤

     編輯:PHP 綜合知識

strip_tags() 是 PHP 內建的字串處理函數,用於剝離字串中的 HTML、XML 與 PHP 標籤,常用於防止 XSS 攻擊、淨化使用者輸入或提取純文字內容。本文詳細說明語法、參數、版本差異與實用範例。

函數定義與用法

string strip_tags ( string $str [, string $allowable_tags ] )
  • $str:必填,待處理的字串。
  • $allowable_tags:選填,指定允許保留的標籤(如 "<b><i>"),其餘標籤將被移除。

重要特性

  • 始終移除 HTML 註解:自 PHP 4.3 起,<!-- ... --> 無法透過 $allowable_tags 保留。
  • 二進制安全:自 PHP 5.0 起支援二進制資料處理。
  • 不保證輸出合法 HTML:若輸入標籤未閉合或巢狀錯誤,輸出可能仍殘留破碎標籤。

實用範例

範例 1:移除所有標籤

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

範例 2:保留特定標籤

<?php
echo strip_tags("Hello <b><i>world!</i></b>", "<b>");
// 輸出:Hello <b>world!</b>
?>

範例 3:處理巢狀與破碎標籤

<?php
$html = "<div><p>段落</div>"; // 未正確閉合
echo strip_tags($html); // 輸出:段落
?>

常見應用場景

  1. 留言板/評論淨化:只允許 <b><i><u><a> 等安全標籤。
  2. RSS/匯出純文字摘要:移除所有標籤取前 N 字元。
  3. 防 XSS 輔助:配合 htmlspecialchars() 雙重防護。

注意事項

  • $allowable_tags 不支援屬性過濾,<a href="..."> 會完整保留含屬性,若需限制屬性請改用 HTMLPurifier。
  • 處理大量文字時效能良好,但極長字串建議分塊處理。
  • PHP 7.3+ 對 UTF-8 多位元組字元處理更穩健。

小結

strip_tags() 是快速淨化 HTML 字串的利器,掌握其保留標籤參數與版本行為差異,能在表單處理、內容匯出、安全防護等場景靈活運用。若需更精細的標籤/屬性白名單控制,建議引入 HTMLPurifier 等專業庫。

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