Я надеюсь писать алгоритм для сжатия вывода HTML для CMS, который я пишу в PHP, записанном с платформой CodeIgniter.
Я думал о попытке удалить пробел между любыми угловыми скобками, кроме <script>
, <pre>
, и <style>
элементы, и просто игнорирующий те элементы для простоты. Я должен разъяснить, что это - пробел между последовательными тегами без текста между ними.
Как я должен пойти о парсинге HTML для нахождения пробела, который я хочу удалить?
Править: Для начинаний я хочу удалить все символы табуляции, которые не находятся в <pre>
теги. Это может быть сделано с regex, я уверен, но каковы альтернативы?
Есть ли что-то неправильное в существующих решениях минификации HTML?
Minify делает HTML (а также CSS и JS).
(Вторая ссылка ведет на исходный код, который комментирует шаги, которые он делает - это должно быть хорошим подспорьем, если вы захотите создать свой собственный - он BSD лицензирован. )
Кроме того, как говорит Пит, вы получите гораздо больше пользы, используя сжатие gzip для вашего HTML (и CSS/JS/etc), и не столкнетесь с такими проблемами, как упомянул Гордон в своем комментарии.
Не надо. Пробелы незначительны. Лучше использовать сжатие вывода, с zlib или здесь, например,