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

PHP strip_tags() 函數完整指南:移除 HTML、XML 與 PHP 標籤

     編輯:PHP 相關知識

在 PHP 開發中,處理使用者輸入的字串時,常需要移除其中的 HTML、XML 或 PHP 標籤,以防止跨站腳本攻擊(XSS)或單純提取純文字內容。strip_tags() 正是為此而生的內建函數,它能快速剝離字串中的標籤,並可選擇性保留特定標籤。

語法與參數

strip_tags(string $string, string $allow = null): string
  • $string(必需):要檢查並處理的字串。
  • $allow(可選):指定不被移除的標籤,可為單一標籤(如 '<b>')或多個標籤組成的字串(如 '<b><i>')。

重要特性

  • 函數永遠會移除 HTML 註解(<!-- ... -->),此行為無法透過 $allow 參數改變。
  • 若字串包含不完整或巢狀錯誤的標籤,結果可能不如預期,建議搭配 HTML 解析器(如 DOMDocument)處理複雜結構。
  • 此函數不修改標籤屬性,例如 <a href="..."> 中的 href 會被保留若 <a> 在允許清單中。

實戰範例

<?php
$str = "Hello <b><i>world</i></b>!";

// 1. 移除所有標籤
echo strip_tags($str); 
// 輸出:Hello world!

echo '<br />';

// 2. 保留 <b> 和 <i> 標籤
echo strip_tags($str, '<b><i>'); 
// 輸出:Hello <b><i>world</i></b>!
?>

常見應用場景

  • 儲存使用者留言前,移除所有標籤:strip_tags($_POST['comment'])
  • 允許基本排版標籤(粗體、斜體、換行):strip_tags($input, '<b><i><br>')
  • 產生文章摘要時,先移除標籤再截取字數。

進階提示

若需更嚴格的安全過濾(如移除事件屬性 onclick、style 等),請使用 HTML Purifier 等專門函式庫,strip_tags() 僅適合簡單場景。

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