2012-04-11 95 views
0

我想從HTML抓取文本做一些過程,並改變它並重新插入到該HTML代碼與PHP。在HTML中處理文本,並重新插入到html結構

<p>This is my sentence <span>and more</span> also <strong>important</strong> part.</p> 

什麼是最好的方法?使用preg_ *?我如何重新插入我的文本到HTML樣式?

例如,我想刪除單詞之間的所有雙或更多空格。

preg_replace('/\s+/', ' ', $myText); 

,但我在HTML文本只想應用不是HTML標籤,屬性或等..

+0

更新說明:是的例子沒有實際意義,因爲在你的榜樣多餘的空格會向下摺疊成一個單一的空間呢?無論如何,我會認爲你提供的'preg_replace'例子會工作得很好? – 2012-04-12 00:00:28

回答

1

看一看的DomDocument。它可以讓你對你的HTML進行一些操作。

http://www.php.net/manual/en/domdocument.loadhtml.php

編輯

如果要細說你想用你的HTML爲例做什麼,我們也許能夠提供更具體的答案:)

編輯

要反映更新的答案:HTML中的多個空格應該摺疊,但如果你要刪除它們,那麼你可以嘗試以下方法:

$result = preg_replace_callback('/(?<=\>)[\w\s]+(?=\<)/', function($match) { 
    return preg_filter('/\s+/', ' ', $match[0]); 
}, $str); 

我沒有任何延伸正則表達式的專家,所以我敢肯定有一個更優雅的方式來做到這一點,但是這可能會爲你的工作仍然:首先做一個preg_replace_callback並使用lookaround抓取結束標籤和開始標籤之間的任何文本片段。然後,將結果通過preg_filter(或preg_replace)以將任何多個空格替換爲單個空格。

希望這有助於/工程:)