(php) regexto удалять комментарии, но игнорировать события внутри строк

Я пишу съемку-стриптизершу и стараюсь приспособить для всех потребностей здесь. У меня есть следующий код кода, который удаляет почти все комментарии, но на самом деле он заходит слишком далеко. Было потрачено много времени на тестирование и тестирование шаблонов регулярных выражений, но я не утверждаю, что они лучшие в каждом.

Моя проблема в том, что у меня также есть ситуация, когда у меня есть «комментарии 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 

Любая помощь, которую вы можете мне дать, будет очень признательна! 🙂