2014-01-11 141 views
-1

我遇到了一些正則表達式的問題。 我使用下面的正則表達式來獲取html標籤之間的文本。用PHP替換所有HTML標記

preg_replace("/<.*>/ix", " ", $input_lines); 

這表達

<a href="some.html">Somelink 

輸出效果很好是
Somelink

不過,這並不與

<a href="some.html">Somelink</a> 

它顯示了一個空白的輸出工作。

我的實際輸入是這樣的

<a href="some.html">Somelink</a><anytag>Somelink</anytag> 

和期望的輸出是

Somelink Somelink 

所有標籤開始或結束標籤是否被用空格代替。

和一個小問題:

+5

爲什麼你想複製['strip_tags'(http://php.net/strip_tags)? – mario

+0

我希望單詞之間有單個空格:| – user2454340

回答

0

如果我理解你的問題,你可以使用這個方法strip_tags

this link 也許它可以幫助你

+1

我用它,它產生的輸出爲「SomelinkSomelink」 – user2454340

+1

以及它在我想用的地方,謝謝:) – user2454340

1

在你的正則表達式.*最後>

前指

所以它應該是.*?

更安全,它將是[^>]*

+0

「更安全」...直到我注入一個屬性值'''。 –

+0

我對html不太瞭解。如果我可以把'>'放在任何屬性中,那麼不應該使用'[^>] *'。 –

0

嘗試strip_tags功能。

對於更換,試試這個

$result = preg_replace('/[ ]{2,}/imx', ' ', $subject);