Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> html компрессор, сжатие трафика, за счет компрессии html 
:(
    Опции темы
Strech
Дата 2.4.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Здравствуйте винградовцы.
Подскажите пожалуйста, есть ли такая библиотека, а если нет, то посоветуйте решения (опять же если таковые имеются), для компрессии html.
Задача состоит в следующем, необходимо выкинуть все лишнее из html кода, превратить так сказать в не читаемую кашу  smile , выбросить лишние пробелы, переводы строк, комментарии, но нужные оставить (вроде условных).

У кого какие мнения по этому поводу. С нетерпением жду. smile 
PM MAIL   Вверх
MoLeX
Дата 2.4.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



компрессор
щутка  smile


Strech не разу не встречал, а зачем тебе такая фича? вроде модемщиков становится все меньше и меньше... может лучше не сжимать хтмл код страница, а уменьшить вес грифики?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
ksnk
Дата 2.4.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 3
Всего: 386





--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Strech
Дата 2.4.2008, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(ksnk @  2.4.2008,  11:41 Найти цитируемый пост)
htmloptimize 
Очень хорошо, буду пробовать. Большое спасибо.
Жду ещё предложений smile 

PM MAIL   Вверх
MoLeX
Дата 2.4.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Цитата(Strech @  2.4.2008,  12:28 Найти цитируемый пост)
Жду ещё предложений


Strech если внимательно читал ссылку то долежн был увидеть это - gzip


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
awers
Дата 2.4.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



yuicompressor вам в помощь, а еще google.ru на предмет использования gzip с примерами .htaccess для упрощенного варианта
PM MAIL WWW ICQ Skype   Вверх
Strech
Дата 2.4.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(MoLeX @ 2.4.2008,  12:35)
Strech если внимательно читал ссылку то долежн был увидеть это - gzip

Если вы видели мой вопрос, то там спрашивается о компрессии не за счёт сжатия, а за счёт оптимизации html кода
PM MAIL   Вверх
MoLeX
Дата 2.4.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



ну после оптимизации он от своего веса убавит совсем немного, а вот серверу прийлется потрудится...


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Strech
Дата 2.4.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(awers @  2.4.2008,  12:41 Найти цитируемый пост)
yuicompressor вам в помощь
Это раздел о php?)

Добавлено через 1 минуту и 5 секунд
Цитата(MoLeX @  2.4.2008,  13:08 Найти цитируемый пост)
а вот серверу прийлется потрудится
Не приувеличивайте  smile 


Это сообщение отредактировал(а) Strech - 2.4.2008, 13:10
PM MAIL   Вверх
Strech
Дата 2.4.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(ksnk @  2.4.2008,  11:41 Найти цитируемый пост)
htmloptimize 
Что-то не выкидывает он комментарии ... только пробелы ... странно

PM MAIL   Вверх
Feldmarschall
Дата 2.4.2008, 13:57 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Цитата(Strech @  2.4.2008,  13:01 Найти цитируемый пост)
Если вы видели мой вопрос, то там спрашивается о компрессии не за счёт сжатия, а за счёт оптимизации html кода 

Видели.
Однако смысла колупаться с пробельчиками при наличии компрессии нет ни малейшего.
Сюда пишут специалисты.
И не стоит от них ждать ответа на бессмысленные вопросы. Здесь дадут решение проблемы, а не чьих-то фантазий. 
Надо сжимать? Есть gzip.



Это сообщение отредактировал(а) Feldmarschall - 2.4.2008, 13:59
PM   Вверх
Strech
Дата 2.4.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



вопрос стоит в том, есть ли какие-то реализованные оптимизации html кода, путём очистки кода от мусора, средствами php.

Это сообщение отредактировал(а) MoLeX - 2.4.2008, 14:31
PM MAIL   Вверх
mishaSL
Дата 2.4.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



Цитата(Feldmarschall @  2.4.2008,  13:57 Найти цитируемый пост)
Однако смысла колупаться с пробельчиками при наличии компрессии нет ни малейшего.

Я бы не сказал, что в этом нет смысла. В этом появляется смысл, но в очень редких случаях: когда уже включены компрессии, но тем не менее проект очень нагружен и хочется еще сократить трафик.
К примеру на www.yandex.ru, google.ru и т.д. но как правило повторюсь это используется только на очень нагруженных проектах. Хотя если есть желание, то почему бы и не использовать, думаю хуже от этого не будет.

Добавлено через 1 минуту и 39 секунд
Strech, так не так сложно написать это на PHP, главное определиться что вырезать нужно.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Feldmarschall
Дата 2.4.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



mishaSL, так "нагружен" или "сократить трафик"? 
Трафика там много не наловишь. А нагрузка только вырастет. Хотя тоже копейки, но уж, во всяком случае - не минус.
И яндекс, насколько я вижу, ничего не "сжимает". А мотивы гугла могут и отличаться от "экономии трафика".



M
MoLeX
Разборки на форуме не уместны. Будьте терпимы друг к другу и вежливы...


Это сообщение отредактировал(а) MoLeX - 2.4.2008, 14:34
PM   Вверх
mishaSL
Дата 2.4.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 54



Feldmarschall, в данном контексте под словом "нагружен" я подразумевал: большое кол-во обращений к сайту.

Можно узнать из каких соображений вы считаете, что этот метод сжатия не должен использоваться? 
И тогда еще один вопрос, если мы сжимает JS и CSS файлы (это распространенная практика), почему не стоит сжимать HTML?

Я повторюсь, я не говорю, что этот способ имеет место в повсеместном применении, я хочу сказать что такой способ существует и применяется на практике.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Strech
Дата 2.4.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Полностью согласен с mishaSL, но оптимизация html может нести не только характер снижения трафика, например защита от дурака.
Если у кого-то есть хороший пример, по удалению пробелов внутри тегов, и тому подобное, прошу не жадить smile 
PM MAIL   Вверх
ksnk
Дата 2.4.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 3
Всего: 386



Цитата(Strech @  2.4.2008,  13:26 Найти цитируемый пост)
Что-то не выкидывает он комментарии ... только пробелы ... странно

Новая версия его чего-то странно повела себя на моем проекте. Вот старая версия, которая у меня крутится... Как нибудь соберусь с силами - посмотрю в чем дело...

P.S. Новая версия не хуже. Лучше использовать ту, что по ссылке...
Принципиальное отличия "старой" от новой в том, что мной вставлен
    header('Content-type: text/html; charset=utf-8');
в первую строчку процедуры...

Это сообщение отредактировал(а) ksnk - 3.4.2008, 08:54

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  htmlopt.php 4,02 Kb


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Strech
Дата 3.4.2008, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(ksnk @  2.4.2008,  15:58 Найти цитируемый пост)
Вот старая версия, которая у меня крутится
Спасибо, попробую

Это сообщение отредактировал(а) Strech - 3.4.2008, 06:37
PM MAIL   Вверх
Strech
Дата 3.4.2008, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



ksnk, не могли бы вы запостить пример использования оптимизатора вашего, а то что-то он работает так же как и прежний, что вы давали. smile 
PM MAIL   Вверх
ksnk
Дата 3.4.2008, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 3
Всего: 386



Вообще-то он не мой. По ссылке и/или в комментариях в коде можно найти автора.

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

Пример 
Код

    ob_start('html_optimize');


Добавлено через 2 минуты и 12 секунд
Какие комментарии не удаляются? Можно пример?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Strech
Дата 3.4.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



ksnk, dот мой пример, что я сделал не так?

Код

require_once 'inc/html_optimize.2.0.25.php';
$str = '
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>Главная страница - Название сайта</title>
</head>
<body>
<!-- print info -->
<div class="print">
<h1>Название сайта</h1>
<hr />
</div>
<!-- /print info -->
<!-- <![if IE]> --><h1>Это IE браузер</h1><!-- <![endif]> -->
<!-- <![if !IE]> --><h1>Это не IE</h1><!-- <![endif]> -->
<div id="main"                  >
<a href="#sm" id="top" tabindex="1" title="Перейти к содержимому"></a>
</div>
</body>
</html>
';

ob_start('html_optimize');
echo $str;


Проверьте, на выходе получите ту же строку, комментарии не вырезаны smile 
PM MAIL   Вверх
ksnk
Дата 3.4.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 3
Всего: 386



Дело, видимо в этом (строка 110-112 новой версии )
Код

    #счетчики и баннеры могут использовать в комментариях свои сигнатуры,
    #поэтому не вырезаем комментарии, если длина текста мала, текст в ANSI и нет переносов строк
    if (@$m[5] || preg_match('/^<!--[\x20-\x7e]{4,60}$/s', $m[0])) return $m[0];

Можно либо закоментировать эту строку, либо переделать комментарий...

P.S. убрать короткие комментарии можно так
Код

    if (@$m[5])return $m[0];


Это сообщение отредактировал(а) ksnk - 3.4.2008, 10:28


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Strech
Дата 3.4.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Теперь вопрос в следующем, как оптимизировать html теги, выбросить из них пробелы лишние ... у кого-нибудь есть заготовки регулярных выражений?
PM MAIL   Вверх
snow_wons
Дата 3.4.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Цитата(Strech @  3.4.2008,  11:32 Найти цитируемый пост)
у кого-нибудь есть заготовки регулярных выражений? 


Самое простое:

Код

function ob_linearize($text)
{
    return preg_replace('/[\r\n\s]+/s', ' ', trim($text));
}

ob_start("ob_linearize");

Удаляет двойные пробелы и переводы строк. Будьте осторожны с комментариями "//" в js. 
PM MAIL   Вверх
Strech
Дата 3.4.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(snow_wons @  3.4.2008,  12:53 Найти цитируемый пост)
Удаляет двойные пробелы и переводы строк
Эмммм ... а как это связано с удалением лишних пробелов в html тегах?

PM MAIL   Вверх
snow_wons
Дата 3.4.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Цитата(Strech @  3.4.2008,  13:14 Найти цитируемый пост)
а как это связано с удалением лишних пробелов в html тегах?

Самым непосредственным образом.
Или у нас разные понятия о "лишних пробелах"?
PM MAIL   Вверх
Sannis
Дата 4.4.2008, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Я бы сказал, что оба хороши (:
snow_wons, а как быть, скажем, с содержимым тегов <pre> ?
Strech, чесно говоря не ясно, что вы хотите smile Внутри самих тегов вырезать(пример: <a       href =  "">) или внутри контейнеров?
Если бы делал, остановился бы на вырезании лишнего между тегами, например так:
Код

preg_replace('/>[\r\n\s]+</s', '>< ', $text);



--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
snow_wons
Дата 4.4.2008, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Цитата(Sannis @  4.4.2008,  02:23 Найти цитируемый пост)
а как быть, скажем, с содержимым тегов <pre>?


Или добиваться нужного эффекта иными способами, или заменить ' ' на &nbsp;, а переносы строк <br />


Это сообщение отредактировал(а) snow_wons - 4.4.2008, 08:57
PM MAIL   Вверх
Strech
Дата 4.4.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата(Sannis @  4.4.2008,  02:23 Найти цитируемый пост)
Если бы делал, остановился бы на вырезании лишнего между тегами, например так:

Задача не в том, чтобы между тегами место убрать, это проще пареной репы. А тег форматировать нормально и из
Код

<  div       class="   super    puper"   id = "  12" >

Сделать это
Код

<div class="super puper" id="12">

PM MAIL   Вверх
snow_wons
Дата 4.4.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Цитата(Strech @  4.4.2008,  15:13 Найти цитируемый пост)
Задача не в том, чтобы между тегами место убрать, это проще пареной репы

А для вас есть какая то разница где пробелы убирать? Регулярки по всему тексту идут (всмысле коду) и им всё равно внутри тега работать или снаружи.
Если хотите получить то, что написали - то:
Код

function ob_linearize($text)
{
    $text = preg_replace('/[\r\n\s]+/s', ' ', trim($text));
    $text = str_replace('=" ', '="', $text);
    $text = str_replace(' ="', '="', $text);
    $text = str_replace('< ', '<', $text);
    $text = str_replace(' >', '>', $text);
    return $text;
}

PM MAIL   Вверх
Sannis
Дата 4.4.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата(snow_wons @ 4.4.2008,  08:57)
Цитата(Sannis @  4.4.2008,  02:23 Найти цитируемый пост)
а как быть, скажем, с содержимым тегов <pre>?


Или добиваться нужного эффекта иными способами, или заменить ' ' на &nbsp;, а переносы строк <br />

Я-то понимаю, что делать с ними ;)

P.S. Имхо, в последнем посте дополнительные регулярки не внесут ничего нового, разве нет?


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.1357 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.