За последние 24 часа нас посетили 66417 программистов и 1616 роботов. Сейчас ищут 1019 программистов ...

Сжатие скрипта

Тема в разделе "Регулярные выражения", создана пользователем [vs], 14 мар 2010.

  1. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Есть у кого-нибудь готовая регулярка? Скрипты можно нехило сжать, убрав все переносы, табуляции, лишние пробелы и комментарии. Лишние пробелы - это пробелы между if и скобкой например.
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Может можно из Smarty вытащить?
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вытащил
    Код (Text):
    1. ![\t ]*[\r\n]+[\t ]*!
    регулярки, убирающей комментарии не нашел..
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а зачем сжимать? недавно же тест делали что лишние пробелы почти не влияют на производительность?
     
  5. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    причем я его делал
    пробелы на производительность не влияют... НО:
    1. Речь идет не о производительности а об СЖАТИИ это разные вещи
    2. Пустрые строки тестировал, a коментарии накшталт:
    PHP:
    1.  
    2. <?
    3. //Это начало любого php документа
    4. //всегда делайте так в начале документа
    5. //иначе он не инициализируется
    6. //и не выполнится...
    7. //в противном случае он выведет все
    8. //на экран нах
    9. //и испортит всю страницу
    10. //к едрене фене
    11. echo 'привет!';
    12. //вот мы вывели первое слово с помощью функции echo
    13. //Эхо это когда ты что то говоришь и слышишь н-кратное повторение
    14. //Эхо это как раз об этом =))
    15. //Но спрашивается накой хрен мне php если этот привет
    16. //я могу сказать и с помощью простого HTML
    17. //а для того что с помощью HTML выводить приветы
    18. //так как будем делать это мы вы еще не скоро научитесь
    19. $name='Вася';
    20. $type='дурачок';
    21. echo 'привет '.$name.'!!! Да, '.$type.', Я знаю как тебя зовут';
    22. //oasfdjajf;ajf;ajf;aj;f;afj;ajfafasfafafafafasfasfafasf
    23. //asfafafafafasfasfafasfasfasfafafafafafasfafa
    24. //asfafafafasfasfafafafafasfasfsafffffffffffffffffasfasfaf
    25. //asfasfasfffffffffffffffffffffffffffffffffffffffffffffffffffffawfrwaf
    26. //asfasfffffffffffffffffffffffffffffffffffffffffffffffffff ЭТО ВСЕ КАКОЙ ТО ТЕКСТ!!!!
    27. //вввввввввввввввввввввввввввввввввввввввввввввввввввввввввввв
    28. ?>
    29.  
    А вот как построить скрипт удаления таких коментариев есть идейка:
    Все они находятся между следующими символами // и /n или \n не помню...
    можно построить некий скрипт который открывал бы файл php и удалял все что между ними находится...
    а можно просто взять самому открыть файл и стереть коменты...
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вырезать комментрарии - не такая уж тривиальная задача.
    PHP:
    1. <?php
    2. /* The comment */
    3. // The comment
    4. # The comment
    5. $var; // The comment
    6. $var = " /* The NOT comment */ // The NOT comment #The NOT comment";
    7. $var =<<<TXT
    8. // The TOO NOT comment!
    9. TXT;
     
  7. [vs]
    возьми tokenizer
    http://php.net/tokenizer

    Там в примерах как раз есть вырезание комментов.

    Следует только учесть одно - любой опкод-кешер по сути, сделает это и так, значит - нужно ли тратить на это время?
     
  8. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
  9. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    php_strip_whitespace(), не =(
    Returns the PHP source code in filename with PHP comments and whitespace removed.
    дословно:
    Возвращает PHP код в файле filename вместе с PHP коментариями и еще какой то хренью.. нам надо избавится от коментов а не оставить их и прокоментировать коментарии...
     
  10. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Барин, подтяните свой английский. ;)
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Самое оно!
     
  12. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Бгг
     
  13. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    [vs], для какой цели это нужно?
    Уменьшить сам размер файлов?

    Посмотрите YUI-compressor и аналогичные решения.

    Если нужно ускорять сам php, посмотрите на eAccelerator, возможно apc.
    Если проблема с данными - xcache, memcache.