文法がANのパーサージェネレーターを見て、確実にコメントを見つけるためのネストパーサーを作成します。正確さが重要な場合、正規表現はあなたを助けません。それでも100%の正確さはありません。
は
問題3は、言語でのコメントは、常に言語でのコメントではありません考えてみましょう。
<textarea><!-- not a comment --></textarea>
<script>var re = /[/*]not a comment[*/]/, str = "//not a comment";</script>
問題4、言語に埋め込まれたコメントは、明らかにコメントではないかもしれません。
<button onclick="// this is a comment// notAComment()">
問題5は、ブラウザがどのように設定されているかによって異なります。
<noscript><!-- </noscript> Whether this is a comment depends on whether JS is turned on -->
<!--[if IE 8]>This is a comment, except on IE 8<![endif]-->
私は、ソフトウェアの実装の詳細をリーク防止のために、ソースコードからコメントをElideの文脈テンプレートシステムのために、部分的にこの問題を解決しなければなりませんでした。
https://github.com/mikesamuel/html-contextual-autoescaper-java/blob/master/src/tests/com/google/autoesc/HTMLEscapingWriterTest.java#L1146は、JavaScriptでコメントが識別され、後でテストケースがCSSとHTMLで識別されるコメントを表示するテストケースを示しています。あなたは、コメントを見つけるためにそのコードを適応させることができるかもしれません。PHPコードセクションでコメントを処理しません。
これは些細なことではないことは間違いありません。コメントを確実に削除するには、ファイル(PHP、HTML、Javascript)を完全に解析する必要があります。可能であればPHPで作業することをお勧めします。私はPerlを好きですが、PHPで動作するPerlツールよりもPHPのツールが優れています。ここにあなたを始めるための何かがあります:http://stackoverflow.com/questions/503871/best-way-to-automatically-remove-comments-from-php-code。 PHPのHTMLパーサとjavascriptパーサーを見つけて、ファイルの部分に対して同様に行う必要があります。 – dan1111
あなたのHTMLファイルにPHPがあるのはなぜですか?私はちょうどあなたのページをコメント、空白、および一般的に "スリム"を削除することができます製品のCSS、JavaScriptとHTML、次にGoogleの "HTMLマイナー"を持っています。 –
@ RB。事前レンダリング? – Jivings