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

PHP 使用 strip_tags() 去除 HTML 標籤後殘留空白的解決方案

     編輯:PHP 綜合知識

在 PHP 開發中,strip_tags() 是常用的去除 HTML 標籤函數,但許多開發者發現它處理後的字串仍會殘留大量空白字元(換行、空格、Tab 等),影響後續的字串截取或顯示。本文將分享一個簡單有效的解決方法,並說明其中的原理。

問題重現

假設資料庫欄位 $newsRs['content'] 存放如下 HTML 內容:

<p> 張志斌張志斌張志斌張志斌張志斌張志 </p>
<p> <br /> </p>
<p> alsdkjf;laskjd;flasj; </p>
<p> asdjfasjd;lkafsj;lfdkj </p>
<p> aksdjfl;ak </p>

直接使用 strip_tags() 處理後,結果會變成:

張志斌張志斌張志斌張志斌張志斌張志 alsdkjf;laskjd;flasj; asdjfasjd;lkafsj;lfdkj aksdjfl;ak

可以看到,原本的標籤被替換成空白,導致文字之間出現多餘的空格與換行,這通常不是我們想要的純文字內容。

解決方法:搭配正則表達式移除所有空白字元

關鍵在於第二步:使用 preg_replace() 配合 \s 模式,一次清除所有空白字元(包含空格、換行、Tab 等)。

$subject = strip_tags($newsRs['content']); // 1. 先去除 HTML 標籤
$pattern = '/\s/';                         // 2. 定義匹配所有空白字元的正則
$content = preg_replace($pattern, '', $subject); // 3. 將空白替換為空字串
$seodata['articledescription'] = mb_substr($content, 0, 80); // 4. 安全截取 80 個中文字

處理後結果

張志斌張志斌張志斌張志斌張志斌張志alsdkjf;laskjd;flasj;asdjfasjd;lkafsj;lfdkjaksdjfl;ak

這樣就能得到乾淨、連續的純文字,非常適合用於 SEO 摘要、搜尋預覽或 API 回傳資料。

補充說明:關於 \s 與 \S

  • \s:匹配任意空白字元(空格、\t、\n、\r 等)
  • \S:匹配任意非空白字元(大小寫相反)

記住大小寫區分,這在撰寫複雜正則時非常實用。

實用工具推薦

調試正則表達式時,以下線上工具能大幅提升效率:

延伸閱讀

更多 PHP 相關技巧,可參考本站專題:

  • 《PHP 正則表達式用法總結》
  • 《PHP 字串(string)用法總結》
  • 《PHP 陣列(Array)操作技巧大全》
  • 《PHP 常見資料庫操作技巧匯總》

希望本文能幫助你解決 strip_tags() 留下的空白困擾,讓資料處理更乾淨俐落!

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