2010-03-24 119 views
0

strip_tags僅捕獲具有開始和結束標記的標記。對於我正在處理的字符串造成問題,我需要刪除所有HTML標記。如何使用preg_replace去除所有html?

+1

'strip_tags'應該刪除所有的HTML標籤。你正在嘗試什麼輸入,沒有被剝離,究竟是什麼? – Chris 2010-03-24 12:19:50

+0

通常,通過正則表達式解析XML/HTML不被認爲是好事。特別是來自用戶輸入/不可信來源的HTML應該總是被轉換成格式良好的XML,並使用適當的XML工具進行操作。 – jholster 2010-03-24 12:24:02

回答

3

如果你想乾淨一些HTML,我建議使用真正 HTML解析器,像HTMLPurifier

一般來說,試圖用正則表達式最終趨向於嚴重操縱的HTML ...

+0

......確實非常非常非常糟糕! – Elister 2010-03-24 12:37:09

0
<?php 

$html = '<p>Lorem ipsum dolor <br>sit amet, <br />consectetur adipisicing elit</p>'; 
echo strip_tags($html); 

?> 

...打印:

Lorem存有悲坐阿梅德, consectetur adipisicing ELIT

+0

http://www.starcraft-source.com/strategy/article/view/?id=205 看看Micro在第一段中可以將鼠標懸停並看到定義,您可以看到定義中存在的段落標籤。 – Webnet 2010-03-25 02:17:33

+0

@Webnet:如果不向我們顯示原始字符串,那麼證明什麼都沒有。如果您在標題屬性的當前內容上運行strip_tags(),則會刪除標記。 – 2010-03-25 09:17:24