私はコメントストリッパーを書いており、ここですべてのニーズに対応しようとしています. ほとんどすべてのコメントを削除するコードのスタックを以下に示しますが、実際には行き過ぎです。一致する正規表現パターンを試し、テストし、調査するのに多くの時間が費やされましたが、それぞれが最適であるとは言えません。
私の問題は、実際には削除したくない「PHPコメント」(実際にはコメントではない)が標準コードまたはPHP文字列にある状況でもあることです。
例:
<?php $Var = "Blah blah //this must not comment"; // this must comment. ?>
最終的に起こることは、それが宗教的に取り除かれることです。これは問題ありませんが、特定の問題が残ります。
<?php $Var = "Blah blah ?>
また:
コメントは末尾の ?> を含む行の残りの部分を削除するため、問題も発生します。
問題が見えますか?だから、これは私が必要なものです...
- 「」または「」内のコメント文字は無視する必要があります
- ダブルスラッシュを使用する同じ行の PHP コメントは、おそらくコメント自体のみを削除するか、php コードブロック全体を削除する必要があります。
現在使用しているパターンは次のとおりです。既存のパターンで改善できる点があれば教えてください。:)
$CompressedData = $OriginalData;
$CompressedData = preg_replace('!/\*.*?\*/!s', '', $CompressedData); // removes /* comments */
$CompressedData = preg_replace('!//.*?\n!', '', $CompressedData); // removes //comments
$CompressedData = preg_replace('!#.*?\n!', '', $CompressedData); // removes # comments
$CompressedData = preg_replace('/<!--(.*?)-->/', '', $CompressedData); // removes HTML comments
あなたが私に与えることができるどんな助けも大歓迎です!:)