Как убрать комментарии из PHP: безопасный способ без сломанного кода

Kuznya Studio 20.09.2026 1

Убирать комментарии из PHP-файлов — задача простая только на первый взгляд. Возьмёшь грубый regex — сломаешь URL в строках, регулярные выражения и весь рабочий код. Разбираемся, как делать это безопасно.

Зачем убирать комментарии из PHP

  • Уменьшить вес файлов — комментарии занимают 5–30% от размера PHP-файла
  • Скрыть структуру проекта — комментарии часто содержат подсказки о логике, TODO, настройки окружения
  • Подготовить код к продакшену — чистая кодовая база без черновых пометок
  • Сдать проект клиенту без следов разработки — комментарии типа «тут костыль, потом переделать» лучше убрать

Почему нельзя просто удалить через regex

Классический способ — прогнать PHP через regex и удалить всё, что начинается с //, # или /* */. Проблема в том, что этот regex сломает:

1. URL внутри строк

$url = 'https://kuznya-studio.site/';  // ← // в URL не комментарий!

Regex увидит // и удалит всё после него — включая остаток URL. Результат: $url = 'https: — синтаксическая ошибка.

2. Regex-паттерны в коде

preg_match('/^[a-z]+/i', $input);  // ← // внутри паттерна

То же самое — первое // обрежет regex, PHP упадёт.

3. Данные, содержащие символы комментариев

$code = 'echo "test"; # inline comment';

Regex удалит # inline comment внутри строки — сломает данные.

Правильный способ — token_get_all()

В PHP есть встроенная функция token_get_all(), которая разбирает код так же, как сам интерпретатор PHP. Она точно знает, где начинается комментарий, а где строка.

Логика такая:

  1. Разбираем код на токены
  2. Проходим по токенам
  3. Удаляем только те, что помечены как T_COMMENT и T_DOC_COMMENT
  4. Всё остальное — оставляем как есть

Этот подход невозможно сломать — токенизатор знает где код, где строки, где комментарии. Именно так работает наш Минификатор PHP.

Что удаляется, что сохраняется

УдаляетсяСохраняется
// однострочныйURL в строках 'https://...'
# хеш-комментарийRegex-паттерны '/.../'
/* блочный */HTML внутри шаблонов
/** doc-блок */Весь рабочий код

Наш инструмент

Мы сделали бесплатный Минификатор PHP — работает через token_get_all, безопасно удаляет комментарии:

  • До 10 файлов за раз
  • До 5 МБ на файл
  • Два пресета: «Только комментарии» и «Стандартный»
  • Не трогает URL, regex и рабочий код
  • Не хранит файлы на сервере

Как использовать:

  1. Откройте /tools/php-minifier/
  2. Перетащите PHP-файлы или вставьте код
  3. Нажмите «Убрать комментарии»
  4. Скачайте результат

Когда НЕ стоит убирать комментарии

  • В библиотеках и framework-коде — там комментарии часто нужны для документирования API
  • В файлах с лицензионными блоками — некоторые лицензии требуют сохранять copyright
  • В коде, который будет дальше правиться вами — комментарии помогают быстро понять логику
  • В файлах с @-аннотациями — например, /** @var Type */ — их читают анализаторы и IDE

Для продакшен-версии готового проекта — убирать. Для разработки — оставлять.

Что даёт минификация PHP

Пример из практики: файл 45 КБ после обработки становится 32 КБ. Экономия — 30%. Плюс — в коде не остаётся следов разработки.

Совмещайте с минификатором PHP и gzip-сжатием — получите файлы на 70–80% меньше исходных.

Итог

Убирать комментарии из PHP — задача с подвохом. Прямой regex сломает код. Правильное решение — токенизация через token_get_all — работает безошибочно.

Если нужно быстро почистить проект — используйте наш инструмент. Работает за секунды, не портит код.