Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Optimize: оптимизатор HTML/XML/JS/CSS кода на PHP (Rin)
Author Message
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Mon Jun 18, 2007 10:14 pm (написано за 21 минуту 35 секунд)
   Post subject: Optimize: оптимизатор HTML/XML/JS/CSS кода на PHP
Reply with quote

Оптимизатор HTML/XML/JS/CSS кода на PHP.
The optimizer of HTML/XML/JS/CSS code on PHP.

Назначение
Оптимизация сгенерированного PHP скриптом HTML/XML/JS/CSS кода перед выводом в браузер, оптимизация "на лету".

Возможности оптимизатора HTML/XML кода
  1. удаляет пробелы вначале и в конце переносов строк
  2. удаляет пробелы ПОСЛЕ открывающих тагов, если перед тагом есть пробел
  3. удаляет пробелы ПЕРЕД закрывающими тагами, если после тага есть пробел
  4. удаляет многострочные или большие html комментарии, комментарии в javascript и стилях.
  5. корректно обрабатывает таги <pre>, <textarea>, <code>, <nooptimize>
  6. специальный таг <nooptimize> на выходе вырезается.
.
Особенности оптимизатора HTML/XML кода
Ценность этого оптимизатора в том, что он аккуратен к html коду с формами ввода,
"с умом" вырезает комментарии вида <!--...--> и // в <script>...</script>.
Верстальщики могут временно/навсегда комментировать большие участки html кода,
писать пояснительные комментарии для себя, не опасаясь за размер выходного файла.

С параметрами по умолчанию Optimize::html() даёт приемлемое сжатие за небольшое время работы,
(баланс между степенью сжатия и скоростью работы) для использования оптимизации "на лету".

Пример использования:
Code (php): скопировать код в буфер обмена
ob_start(array('Optimize', 'html'));
Никогда не экономьте на отступах и пробелах в написании кода и ваш КПД увеличится! :)

С параметрами по умолчанию программа даёт приемлемое сжатие за небольшое время работы,
(баланс между степенью сжатия и скоростью работы) для использования оптимизации "на лету".

@tags php, html, xml, js, javascript, css, cleaner, clean, cleanse, clear, cruncher, optimize, optimizer, purge, obfuscate, vacuum, vacuumize


Optimize-2.3.4.7z
 Description:

Download
 Filename:  Optimize-2.3.4.7z
 Filesize:  8,8 KB
 Downloaded:  1893 Time(s)



Last edited by Rin on Fri Nov 27, 2009 11:24 am; edited 17 times in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Tue Dec 30, 2008 12:13 pm (спустя 1 год 6 месяцев 11 дней 13 часов 59 минут; написано за 1 минуту 21 секунду)
   Post subject:
Reply with quote

2.2.0
  1. В обычном режиме увеличена степень сжатия примерно на 10%, скорость при этом увеличена примерно в 2 раза!
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 6995
Карма: ∞
   поощрить/наказать


PostPosted: Tue Dec 30, 2008 10:29 pm (спустя 10 часов 16 минут)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «html_optimize (обсуждение)»,
расположенную в форуме Разное :: PHP (30 Декабря 2008, 22:29).
Back to top
View user's profile Send private message Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Thu Feb 26, 2009 5:16 pm (спустя 1 месяц 26 дней 18 часов 47 минут; написано за 55 секунд)
   Post subject:
Reply with quote

2.2.1
  1. Исправлены мелкие ошибки и немного увеличена степень сжатия.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Thu Jun 25, 2009 10:26 am (спустя 3 месяца 26 дней 17 часов 9 минут; написано за 1 минуту 54 секунды)
   Post subject:
Reply with quote

2.3.3
  1. Функция переписана в класс, все методы вызываются статически
  2. Добавлена оптимизация CSS и JS
  3. Исправлены небольшие ошибки
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Mon Aug 03, 2009 5:03 pm (спустя 1 месяц 8 дней 6 часов 36 минут; написано за 21 секунду)
   Post subject:
Reply with quote

2.3.4 / 2008-07-20
  1. Улучшено сжатие CSS
  2. Улучшено сжатие HTML
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1298
Карма: 84
   поощрить/наказать


PostPosted: Tue Sep 08, 2009 1:54 pm (спустя 1 месяц 4 дня 20 часов 51 минуту; написано за 1 минуту 57 секунд)
   Post subject:
Reply with quote

Rin,
здравствуйте столкнулся с ошибкой синтаксической в JavaScript коде, при использовании
вашей обжималки (классная вещь (-:), о ней как раз написано в ТуДу:
Code (any language): скопировать код в буфер обмена
* TODO
 * исправить ошибку в методе javascript():
 * }};else -- точка с запятой перед else стоять не может
Когда планируете исправить? И есть ли какое-нибудь временное решение?

З.Ы. Я в качестве "костыля" закомментировал код метода javascript и написал return $s;
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Fri Sep 11, 2009 8:43 pm (спустя 3 дня 6 часов 48 минут; написано за 3 секунды)
   Post subject:
Reply with quote

Пока некогда этим заниматься.
Вообще я планировал внедрить JSMin.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1298
Карма: 84
   поощрить/наказать


PostPosted: Wed Sep 23, 2009 6:46 pm (спустя 11 дней 22 часа 3 минуты; написано за 2 минуты 56 секунд)
   Post subject:
Reply with quote

Так, заметил проблему на сервере с ОС Debian, Apache 2.2.3, PHP 5.2.0-8+etch15.
В лог пишется вот такой ворнинг:
Quote:
[Wed Sep 23 19:36:23 2009] [error] [client 94.50.137.70] PHP Warning: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Compilation failed: unrecognized character follows \\ at offset 639 in /home/web/systemnik/mihalicyn.ru/www/libs/Optimize/Optimize.php on line 221
При чем страничка отображается белая (ну то есть в выходной поток ничего не выводится).

Проблему решил закомментировав вот этот фрагмент кода:
Code (php): скопировать код в буфер обмена
        #вырезаем пробелы ПОСЛЕ открывающих тагов, если перед тагом есть пробел (+0.001 sec.)
        $s = preg_replace('/ (?<=[\x03-\x20])
                             <[a-z][a-z\d]*+ (?<!<input|<img) '
. $re_attrs_fast_safe . ' >
                             \K  #any previously matched characters not to be included in the final matched sequence
                             [\x03-\x20]++
                           /sxiSX'
, '', $s);
Как вы думаете, в чем может быть проблема?
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Wed Sep 23, 2009 9:54 pm (спустя 3 часа 7 минут; написано за 1 минуту 49 секунд)
   Post subject:
Reply with quote

Проблема в старой версии библиотеки PCRE, которая не поддерживает \K.

Пробуйте так:
Code (php): скопировать код в буфер обмена
        #вырезаем пробелы ПОСЛЕ открывающих тагов, если перед тагом есть пробел (+0.001 sec.)
        $s = preg_replace('/ (?<=[\x03-\x20])
                             (<[a-z][a-z\d]*+ (?<!<input|<img) '
. $re_attrs_fast_safe . ' >) #1
                             [\x03-\x20]++
                           /sxiSX'
, '$1', $s);
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1298
Карма: 84
   поощрить/наказать


PostPosted: Thu Sep 24, 2009 7:22 pm (спустя 21 час 28 минут; написано за 31 секунду)
   Post subject:
Reply with quote

Rin,
ага. Заработало.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Avtorkoda
Заглянувший



Joined: 26 Nov 2009
Posts: 1
Карма: -2
   поощрить/наказать

Location: UA

PostPosted: Thu Nov 26, 2009 2:25 am (спустя 2 месяца 1 день 7 часов 3 минуты; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

Code (php): скопировать код в буфер обмена
*
 * Пример использования:
 * ob_start(array('Optimize', 'html');
 *
Блин, скобку закройте же. Шапку обновите (летать так летать, писать так писать, но качество кода уже лучше) (С)


Не корректно обрабатывает (т.е. оставляет)
<!-- end searchbox //-->
<!-- end .grid_2 -->
<!--</div>-->

Также переносы лучше оставлять (они роли в сжатии не играют, а вот читабельность Source Code важна)
Back to top
View user's profile Send private message Visit poster's website ICQ Number
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1298
Карма: 84
   поощрить/наказать


PostPosted: Thu Nov 26, 2009 5:32 am (спустя 3 часа 6 минут; написано за 2 минуты 30 секунд)
   Post subject:
Reply with quote

Avtorkoda,
Quote:
Также переносы лучше оставлять (они роли в сжатии не играют, а вот читабельность Source Code важна)
По чему же не играют-то? Еще как играют!
Quote:
а вот читабельность Source Code важна
Ну вообще-то, библиотека предназначена для того, чтобы обжимать выходной поток,
а по этому читабельность кода тут не важна. То есть оригинальные файлы темплейтов у вас остаются с пробелами, и.т.п.
А выходной поток обжимается.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Rin
Участник форума



Joined: 01 Jun 2005
Posts: 519
Карма: 175
   поощрить/наказать

Location: Москва

PostPosted: Fri Nov 27, 2009 11:26 am (спустя 1 день 5 часов 54 минуты; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

Avtorkoda

>скобку закройте же
ok

>Не корректно обрабатывает
так и должно быть, см. исходный код
Back to top
View user's profile Send private message Send e-mail Visit poster's website
MixMe
Guest





Карма: 377
   поощрить/наказать


PostPosted: Mon May 24, 2010 5:27 pm (спустя 5 месяцев 27 дней 6 часов 44 секунды; написано за 57 секунд)
   Post subject:
Reply with quote

Вот отличный CSS оптимизатор:
www.optimizecss.com
Использую его постоянно, по cравнению с остальными он не ломает дизайн сайта
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1   
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
  XML