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

PHP 正則移除 HTML 標籤:純文字提取實用函數

     編輯:PHP 相關知識

需求場景

從含 HTML 標記的字串中提取純文字內容,常用於資料清洗、搜尋摘要、RSS 處理等場合。

核心函數實作

<?php
$htm = "<a href='https://www.php100.net'>test1</a><br />"
     . "<a href='https://www.php100.net'>test2</a><br />"
     . "<a href='https://www.php100.net'>test3</a><br />"
     . "<a href='https://www.php100.net'>test4</a><br />"
     . "<a href='https://www.php100.net'>test5</a><br />";

echo $htm . "<br />";
echo stripthetag($htm);

/** 移除所有 HTML 標籤 */
function stripthetag($link) {
    return preg_replace('@<[/!]*?[^<>]*?>@si', ' ', $link);
}
?>

正則表達式解析

@<[/!]*?[^<>]*?>@si
  • @ ... @:定界符
  • <:匹配標籤起始
  • [/!]*?:可選的 /(結束標籤)或 !(註解/Doctype),非貪婪
  • [^<>]*?:非標籤字元,非貪婪
  • >:匹配標籤結束
  • s:單行模式(. 匹配換行)
  • i:不區分大小寫

替換為單一空格,避免標籤移除後單詞黏連。

測試結果

輸出前:
<a href='https://www.php100.net'>test1</a><br /> ...

輸出後:
 test1  test2  test3  test4  test5 

進階建議

  • 若需保留特定標籤(如 <br> 換行),可改用 strip_tags($str, '<br><p>') 內建函數。
  • 處理惡意腳本時,建議搭配 htmlspecialchars() 防 XSS。
  • 大量資料處理時,preg_replace 效能優於多次 str_replace。

此函數簡潔高效,適合快速剝離 HTML 標記取得純文字內容。

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