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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> html компрессор, сжатие трафика, за счет компрессии html 
:(
    Опции темы
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   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




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


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

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