- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Задача такая: Нужно удалить комментарии по типу // из php-кода с помощью Notepad++
Через поиск и замену можно использовать регулярное выражение \//.*
Но оно немного не подходит, так как вместе с комментариями полетят и урлы
http:// и некоторые переменные, которые содержать символы //
Как быть, чтобы удалить комментарии, но при этом сохранить все ссылки и значения переменных!?
Не сильно в регулярках notepad++ шарю, а там признак начала строки не поддерживается?
P.s. Я так думаю, для того, чтобы не затрагивались переменные нужно сделать исключение замены, если присутствуют кавычки ' и " (тока я не знаю, как это сотворить через рег.выр.), а вот с урлами, наверное, нужно смотреть по http:
может пробел там ещё стоит перед комментом. можно попробовать кириллицу исключить, если комментарии на ней
может пробел там ещё стоит перед комментом. можно попробовать кириллицу исключить, если комментарии на ней
Комменты на латинице. С пробелом клёво придумал, но там некоторые все-таки сплошняком идут //comment, хотя большинство с пробелом // comment
Одними регулярками тут не обойтись.
Надо сначала распарсить весь php-файл, определить, где начинаются и заканчиваются строки и только потом вырезать комментарии. Если в php-файлах присутствует текст (за пределами <?php ... ?>), то нужно ещё и этот текст не затронуть.
Придумал решения проблемы! ☝
1. //_.* (_ - пробел) - удаляет комменты, где сначала пробел, а затем текст. Фишка в том, что в урле не может быть пробел (http:// site.ru). Но не во всех комментах есть пробел в начале (//comment), поэтому п.2.
2. Удалить комментарии, которые стоят в самом начале строки. (можно найти при помощи расширенного поиска \n//). В адресе сайта перед // всегда стоит http: , поэтому урлы изначально не могут быть удалены, значения переменных также сохраняться, т.к. они в кавычках ( "//" ) плюс еще перед ними есть имя переменной. Вопрос в том, как это реализовать с помощью регулярных выражений. Перед //.* нужно указать новую строку, я не знаю как это сделать, подскажите плз.
Не знаком с Notepad++, но когда подобную задачу решал регулярками на PHP, то разбивал файл на строки, в каждой строке удалял начальные пробелы и табы, а затем, если получившаяся строка начиналась с //, то удалял всю эту строку ( 'http://' тут никак не мешают).
А вот с комментариями, начинающимися в строке после PHP-кода сложнее, но в принципе тоже решаемо (например 'http://' заменить сначала на допустим 'http:/', удалить комментарии, а потом вернуть 'http://', но обычно есть еще куча других '//' - в строках, регулярках и т.п.)
Так что в сотни раз проще просто не делать таких комментариев.
\n — это знак новой строки
Выражение будет примерно следующим: \n//.*
У вас в коде точно нигде не встречается текст в строках похожий на комментарии? Иначе он тоже удалится.
Не знаком с Notepad++, но когда подобную задачу решал регулярками на PHP, то разбивал файл на строки, в каждой строке удалял начальные пробелы и табы, а затем, если получившаяся строка начиналась с //, то удалял всю эту строку ( 'http://' тут никак не мешают).
Такой алгоритм будет удалять якобы "комментарии" из строк. Пример:
$str = 'Hello
//world
';
//world в данном случае не комментарий, но он удалится.
Придумал решения проблемы! ☝
1. //_.* (_ - пробел) - удаляет комменты, где сначала пробел, а затем текст. Фишка в том, что в урле не может быть пробел (http:// site.ru). Но не во всех комментах есть пробел в начале (//comment), поэтому п.2.
2. Удалить комментарии, которые стоят в самом начале строки. (можно найти при помощи расширенного поиска \n//). В адресе сайта перед // всегда стоит http: , поэтому урлы изначально не могут быть удалены, значения переменных также сохраняться, т.к. они в кавычках ( "//" ) плюс еще перед ними есть имя переменной. Вопрос в том, как это реализовать с помощью регулярных выражений. Перед //.* нужно указать новую строку, я не знаю как это сделать, подскажите плз.
Есть третий случай (клинический 😂), когда коммент без пробела и НЕ в начале строки. В этом случае хз че делать. В ручную - не вариант, нужна автоматизация, иначе крыша съедет выискивать и удалять целую кучу комментов.
А зачем вообще комментарии из файла удалять ? Если нужен "релиз" вариант то в командной строке выполнить "php -w source.php > release.php"