Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > как удалить пробелы из вывода в браузер


Автор: zammar 24.3.2011, 22:18
Не знаю в ту ветку пишу или нет, но не могу найти ответ:

Если просмотреть исходный код страницы, например, яндекса, то код будет без пробелов переходов на новую строку и т.д. Абсолютно не читабельный.
А если просмотреть исходный код страницы винграда, то код выводиться с пробелами переводами строк и т.д. 

Как сделать так чтобы исходный код был нечитабельным, без пробельных символов?
Не в ручную же яндекс это делает?

Автор: skyboy 24.3.2011, 23:30
можно решать на уровне генерации(вызывать http://php.net/trim/http://php.net/str_replace/http://php.net/preg_replace только что сгенерированному коду), можно - на уровне конфига HTTP сервера(через http://httpd.apache.org/docs/2.0/mod/mod_ext_filter.html прицепить в апаче именно к выводу HTML удаление переносов строк и пробелом) , можно - на уровне системы кеширования(при помещении в кеш принудительно в HTML выбрасывать комментарии и лишние пробелы) 

Автор: zammar 25.3.2011, 00:01
Цитата

(вызывать trim/str_replace/preg_replace только что сгенерированному коду)


Это не то. Потому как удалит и нужные пробелы в текстах. Регулярка всего вывода, то же по моему притормаживать будет.

Цитата

на уровне системы кеширования

Цитата

через mod_ext_filter


А вот про это не знал. Спасибо. Буду копать, здесь. Про систему кеширования только можно подробнее. О какой системе кеширования идет речь?

Автор: Endeveit 25.3.2011, 08:21
Цитата(zammar @  25.3.2011,  01:01 Найти цитируемый пост)
Это не то. Потому как удалит и нужные пробелы в текстах. Регулярка всего вывода, то же по моему притормаживать будет.

Уверены? Проверьте:
Код

<?php
preg_replace('/>\s+</', '><', $html)

Автор: Muerto 25.3.2011, 12:32
zammar, Удали все \n\r и тп.
<br /> на спуски не влияют и пробелы тоже

Делать это можно через collback + ob_start и его друзей, ну и preg_replace

Автор: zammar 25.3.2011, 21:16
Цитата(Endeveit @ 25.3.2011,  08:21)
Цитата(zammar @  25.3.2011,  01:01 Найти цитируемый пост)
Это не то. Потому как удалит и нужные пробелы в текстах. Регулярка всего вывода, то же по моему притормаживать будет.

Уверены? Проверьте:
Код

<?php
preg_replace('/>\s+</', '><', $html)

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

Автор: bars80080 26.3.2011, 00:02
читаю ответы, и не вижу самого главного вопроса: зачем?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)