4

重複の可能性:
PHPを使用して2つのポイントの間に文字列を挿入します

<!-- START NOT PRINT -->との間のすべてを置き換えるにはどうすればよい<!-- END NO PRINT -->ですか?

次のコードはうまく機能しますが、インスタンスが2つ以上ある場合は、問題が発生します。

次に、最初のタグと最後のタグの間のすべてを置き換えます。ただし、一緒に属する2つのタグ間のすべてを削除する必要があります。これは私のコードです:

$pageData['raw_content'] = preg_replace('/<!--[ ]*START[ ]*NO[ ]*PRINT[ ]*-->(.*)<!--[ ]*END[ ]*NO[ ]*PRINT[ ]*-->/si', '', $pageData['raw_content']);
4

1 に答える 1

9

あなたは貪欲に一致しています。

欲張りでない修飾子が必要です:

'/<!--[ ]*START[ ]*NO[ ]*PRINT[ ]*-->(.*?)<!--[ ]*END[ ]*NO[ ]*PRINT[ ]*-->/si'

になっていることに注意し.*てください.*?

于 2012-06-28T14:43:38.913 に答える