0
$tag = 'img';
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text);
どのようにしてpreg_replaceを最初のマッチ( "img")を無視して他のものに置き換えることができますか?この正規表現で最初の一致を無視する方法
$tag = 'img';
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text);
どのようにしてpreg_replaceを最初のマッチ( "img")を無視して他のものに置き換えることができますか?この正規表現で最初の一致を無視する方法
あなたがのために()ループを使用することができますし、私は、配列の最初の値を避けるために1として$設定されているので、何かのように:
for($i = 1; $tags < count($tags) ; $i++){
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text[$i]);
}
が、このループは$text
値毎回その実行に置き換えられます、もしあなたはそれを文字列として保存.=
で=
記号を置き換えたいか、あなたがしたい場合、配列は、このコードがテストされていないことを$text[$i--]
ノートで$text
を交換します!
これは、実際のHTMLパーサを使用することが非常に適切である状況のようなものです... – lonesomeday
これに正規表現を使用しないで、PHP DOMのものを使用してください。 –
質問に関連する: "[ストリップタグ、最初のものを残す](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) " –