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

どのようにしてpreg_replaceを最初のマッチ( "img")を無視して他のものに置き換えることができますか?この正規表現で最初の一致を無視する方法

+2

これは、実際のHTMLパーサを使用することが非常に適切である状況のようなものです... – lonesomeday

+1

これに正規表現を使用しないで、PHP DOMのものを使用してください。 –

+2

質問に関連する: "[ストリップタグ、最初のものを残す](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

あなたがのために()ループを使用することができますし、私は、配列の最初の値を避けるために1として$設定されているので、何かのように:

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

が、このループは$text値毎回その実行に置き換えられます、もしあなたはそれを文字列として保存.==記号を置き換えたいか、あなたがしたい場合、配列は、このコードがテストされていないことを$text[$i--]

ノートで$textを交換します!

関連する問題