0
$tag = 'img';
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text);
我該如何讓preg_replace忽略第一個匹配(「img」),並對其他人做替換?如何忽略這個正則表達式中的第一個匹配
$tag = 'img';
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text);
我該如何讓preg_replace忽略第一個匹配(「img」),並對其他人做替換?如何忽略這個正則表達式中的第一個匹配
您可以使用for()循環和$設置我爲1,以避免在數組中的第一個值,所以是這樣的:
for($i = 1; $tags < count($tags) ; $i++){
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text[$i]);
}
但這個循環將取代$text
值每次它執行時,如果您想將其保存爲一個字符串.=
更換=
標誌,或者如果你想使一個數組$text[$i--]
請注意此代碼是沒有測試替代$text
!
這種情況下,使用真正的HTML解析器將非常合適... – lonesomeday
不要使用正則表達式,使用PHP DOM的東西。 –
與問題相關:「[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)「 –