2011-09-17 76 views
0
$tag = 'img'; 
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text); 

我該如何讓preg_replace忽略第一個匹配(「img」),並對其他人做替換?如何忽略這個正則表達式中的第一個匹配

+2

這種情況下,使用真正的HTML解析器將非常合適... – lonesomeday

+1

不要使用正則表達式,使用PHP DOM的東西。 –

+2

與問題相關:「[Strip tags,but keep the first one]」(http://stackoverflow.com/questions/7457650/strip-tags-but-keep-the-first-one)「和」[如何使用PHP的DOM文檔?](http://stackoverflow.com/questions/7457833/how-to-use-php-dom-document)「 –

回答

0

您可以使用for()循環和$設置我爲1,以避免在數組中的第一個值,所以是這樣的:

for($i = 1; $tags < count($tags) ; $i++){ 
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text[$i]); 
} 

但這個循環將取代$text值每次它執行時,如果您想將其保存爲一個字符串.=更換=標誌,或者如果你想使一個數組$text[$i--]

請注意此代碼是沒有測試替代$text

相關問題