Я пишу отладчик комментариев и пытаюсь приспособить для всех потребностей здесь. У меня есть следующий код кода, который удаляет почти все комментарии, но на самом деле он заходит слишком далеко. Было потрачено много времени на тестирование и тестирование шаблонов регулярных выражений, но я не утверждаю, что они лучшие в каждом.(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
Любая помощь, которую вы можете мне дать, была бы весьма признательна! :)
Хотя большинство парсеры «HTML» на самом деле XML парсеры и не сможет правильно разобрать HTML, который часто используется с PHP, так как сами файлы редко хорошо сформированы (даже если результирующая страница была). – Rithiur
Вот почему DOMDocument имеет метод loadHTML, который может иметь смысл полностью противоречивого HTML. DOMDocument в сочетании с выражением na xpath exprssion, который находит все комментарии и удаляет их, кажется, является допустимым вариантом для комментариев HTML. Кроме того, он создает HTML XHTML-совместимый. – chiborg