HTMLファイルに埋め込まれたコメントを削除しようとしています
$data= file_get_contents($stream); <br>
$data = preg_replace('<!--*-->', '', $data); <br>
echo $data;
私はまだすべてのコメントで終わっています < !- bla bla bla -->
何が間違っていますか?
以下の正規表現は HTML コメントを削除しますが、条件付きコメントは保持します。
<!--(?!<!)[^\[>].*?-->
正規表現は、ここでやりたいことを実行するために囲い込むのが非常に困難です。
.*
正規表現で任意のテキストに一致させるには、 だけでなくが必要です*
。式は を探しており<!-
、その後に 0 個以上の-
文字が続き、その後に が続き-->
ます。
s/<!--[^>]*?-->//g
正規表現を切り替える
このようにする必要があります:
$str = "<html><!-- this is a commment -->OK</html>";
$str2 = preg_replace('/<!--.*-->/s', '', $str);
var_dump($str2);