ООО ЭкоЮнит
FAQПоискПользователиГруппыФайлыВходРегистрацияГлавная
Версия для печати
 
 
АвторСообщение
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

За основу взят код Оптимизация выходного кода страницы в phpBB3
Мод оптимизирует отдаваемый браузеру код страницы, убирая ненужные пробелы, переводы строки, табуляции.

Скрытый текст:
Показать

Код универсальный, подойдет для любого сайта.

Добавлено спустя 16 минут 46 секунд:

Если какой то мод выводит через php код, оптимизация которого как html нежелательна, например изображения. То в строку if (basename($_SERVER['SCRIPT_FILENAME']) != 'download.php' ... добавьте файл, который надо не обрабатывать модом.
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Вот же для phpBB2 phpbbguru.net/.....c4106.html

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

У меня стоит eXtreme_Styles, и мод не подошел. Вот версия для eXtreme_Styles phpbbguru.net/.....tml#p41172
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Вообще, делать что-то с содержимым страницы через callback-функцию для ob_start хреновая идея.

Добавлено спустя 3 минуты 1 секунду:

Здесь из генерируемых страниц лишнее тоже давным-давно вырезается, просто я не выкладывал свой вариант.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Сравнение размера файла index.php
Без оптимизации - размер 123,127 байт
Код с Гуру нет - размер 118,895 байт
Код из первого сообщений этой темы - размер 117,020 байт
В tempates.php вместо кода с Гуру нет ставился код из Оптимизация выходного кода страницы в phpBB3 - размер 116,624 байт

Лучше всего в tempates.php после
Код:
      $search = array('<!-- PHP -->', '<!-- ENDPHP -->');
      $replace = array('<'.'?php ', ' ?'.'>');
      $code = str_replace($search, $replace, $code);
добавить
Код:
        $search_code = array(">\n", "\t", "\r", '>  <', "\n\n"); 
        $replace_code = array('>', '', '', '><', "\n"); 
        $code = ltrim(str_replace("\t", '', preg_replace('#( ){2,}+#', '\1', str_replace("\\n", ' ', str_replace($search_code, $replace_code, $code))))); 


Добавлено спустя 4 минуты 16 секунд:

Последний вариант требует eXtreme_Styles, если он не стоит, то требуется адаптация кода.

Добавлено спустя 9 минут 58 секунд:

Sergey @ Вт 29 Сен, 2015 11:57 писал: (Просмотр сообщения)
Показать
Sergey, не покажете этот вариант?
ВверхНа форуме нет Профиль
Объединено: Вт 24 Ноя, 2015 12:41 Sergey
Из темы Оптимизация выходного кода сообщений ()
Василий_007

Участник


Зарегистрирован: 18.12.2014
Показать/Спрятать

Сообщение Вт 24 Ноя, 2015 12:08 Скачать сообщение Репутация: 0
 Оптимизация выходного кода сообщений
У юзеров свои представления об форматировании текста...

Решил поправить это так:

viewtopic.php
Код:
// $message = str_replace("\n", "\n<br />\n", $message);
$message = str_replace("\r", "", $message);
$message = str_replace("\n", "<br>", $message);
$message = str_replace(",", ", ", $message); // после запятой надо ставить пробел!
$message = str_replace("<br><br><br><br>", "<br><br>", $message); // лишние переносы
$message = str_replace("<br><br><br>", "<br><br>", $message); // лишние переносы
$message = str_replace("</blockquote><br><br>", "</blockquote><br>", $message); // убираем лишние ентеры после цитат
$message = preg_replace("/  +/"," ",$message); // убираем лишние пробелы


Осталось поставить пробел после точки если после нее идет буква. И поправить как-то эту функцию с <br> чтоб было максимум 2 штуки подряд. Хз как это сделать(
Не подскажите?

И вопрос: насколько это тормозит вывод? Может str_replace через array лучше?

И вообще, может кто уже занимался похожим для своего форума, поделитесь кодом плз.
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

как поставить пробел после точки php
Пробелы после точек
Нет пробела после запятой, точки с запятой - PHP

Добавлено спустя 14 минут 38 секунд:

Пробелы после точки и запятой, если после них идут буквы.
Код:
$mess = preg_replace('/([\.,])([A-ZА-ЯЁ])/i', '$1 $2', $mess); 

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Всего отзывов: 1 Профиль Сайт Имя в Skype
Василий_007

Участник


Зарегистрирован: 18.12.2014
Показать/Спрятать

... и пропали все смайлики и картинки. A-Z лишнее)

Я для того и создал отдельную тему, чтоб обсудить именно этот участок кода а не целой страницы.
Гуглить это хорошо, но и тестить нада. И не одному.
А этот мод имхо нужен любому форуму. не?
Есть еще идеи? Давайте норм допилим этот $message!
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Вот видишь, как всё не просто. Текст на английском языке будем игнорировать? Ещё есть программы на русском языке, где принудительная вставка пробела после точки приведёт к ошибке в коде.
Не забывай, что бездумное использование "двойных кавычек" для строковых переменных может напрочь убить всю оптимизацию.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
Василий_007

Участник


Зарегистрирован: 18.12.2014
Показать/Спрятать

Угу, вижу
Хз, мне англ.текст проще в игнор чем городить проверки. Даже с этим игнором выгода налицо - повышение удобочитаемости кирилицы. Спасибо за рабочее решение.
А двойные кавычки - имхо в моем коде только в preg_replace может быть глюк. Уже поправил, спасибо.

А не подскажите, как удалять лишние <br> если их больше двух?
Код:
$message = str_replace("<br><br><br><br>", "<br><br>", $message);
$message = str_replace("<br><br><br>", "<br><br>", $message); 

Это ж такой костыль :/
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Код:
$message = preg_replace('/(<br \/>|<br>){2,}/', '$1$1', $message); 

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Всего отзывов: 1 Профиль Сайт Имя в Skype
Василий_007

Участник


Зарегистрирован: 18.12.2014
Показать/Спрятать

Код:
$message = str_replace("\n", '<br />', $message);
$message = str_replace("\r", '', $message);
$message = preg_replace('/(<br />|<br>){2,}/', '$1$1', $message);
//$message = preg_replace('/(\.){3,}/', '$1$1$1', $message);
$message = preg_replace('/([\.,])([А-ЯЁа-яё])/i', '$1 $2', $message);
$message = preg_replace('/  +/',' ',$message); 

Ну, вобщем вот такая теоретически безопасная заготовочка получилась, если кому надо...
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Вот ещё из серии оптимизации для форумов с eXtreme_Styles. В includes/bbcode.php текст функции load_bbcode_template() заменить на код ниже. Смысл в том, чтобы использовать уже скомпилированный шаблон с bbcode из кэша, а не парсить его каждый раз. При изменении bbcode.tpl программа перестроит кэш заново.
Код:
function load_bbcode_template()
{
/**
 * modded by Sergey aka Porutchik, 2011-2015 http://forum.aeroion.ru/cat1/
 */

    global $template;
    global $phpEx;
    
    $handle = 'bbcode';
    $filename = $handle . '.tpl';
    
    $template->set_filename($handle, $filename);
    
    if ($template->files_cache[$handle])
    {
        $bbcode_tpls = array();
        include($template->files_cache[$handle]);
        return $bbcode_tpls;
    }
    
    $tpl = @file_get_contents($template->files[$handle]);

    // replace \ with \\ and then ' with \'.
    $tpl = str_replace('\\', '\\\\', $tpl);
    $tpl  = str_replace('\'', '\\\'', $tpl);

    // strip newlines.
    $tpl  = str_replace("\n", '', $tpl);

    // Turn template blocks into PHP assignment statements for the values of $bbcode_tpls..
    $tpl = @preg_replace('#<!-- BEGIN (.*?) -->(.*?)<!-- END (.*?) -->#', "\n" . '$bbcode_tpls[\'\\1\'] = \'\\2\';', $tpl);
    
    $bbcode_tpls = array();

    eval($tpl);

    $code = preg_replace('#\/\*(.*?)\*\/#', '', $tpl); // remove commented
    $code = preg_replace('# \{ #', ' {', $code); //# удаляем лишние пробелы внутри скобок
    $code = preg_replace('#; \}#', '}', $code); //# удаляем лишние пробелы и синтаксис внутри скобок
    
    $search = array("#(\t|\r)#", "#([\n]+)#", "#>([ ]*)\n#"); 
    $replace = array('', "\n", '>'); 
    $code = preg_replace($search, $replace, $code); 
    
    $code = preg_replace('#([ ]+)#', ' ', str_replace("\\n", ' ', $code)); 
    $code = ltrim($code);

    $template->write_cache($template->make_filename_cache($template->files[$handle]), "<?php\n" . $code . "\n?>");

    return $bbcode_tpls;
} 

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Sergey @ Ср 25 Ноя, 2015 22:07 писал: (Просмотр сообщения)
Показать
Этот код удаляет комментарии /*какой то текст*/. Если этот код вставить в tempates.php, то из bbcode.php его можно удалить?
Есть ли смысл вставлять в tempates.php удаление лишних пробелов и синтаксиса внутри скобок?

Добавлено спустя 10 минут 12 секунд:

Оффтоп:
У меня же гугловский adsense асинхронный код требует {/*...*/}, но как оказалось так тоже работает {<?php ?>}
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Ну удали эту строку, раз мешает.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
Показать сообщения:   

Общий рейтинг темы Оптимизация выходного кода страниц
Средний рейтинг: 0.00 :: Мин. рейтинг: 0 :: Макс. рейтинг: 0 :: Количество оценок: 0
Выберите оценку: 1   2   3   4   5  

Похожие темы
Тема Автор Форум Ответов Посл. сообщение
Нет новых сообщений Оптимизация выходного кода страницы в phpBB3
Ускорение загрузки страницы
Несмотря на встроенное кэширование шаблонов в phpBB3 для уменьшения времени генерации страницы, тем не менее, отданный агенту пользователя код страницы остаётся достаточно неоптимизированным, за счёт наличия в текстах
Sergey Поддержка и моды для phpBB3 0 Чт 23 Окт, 2008 16:43 Посмотреть последнее сообщение
Sergey
Нет новых сообщений Оптимизация нагрузки от капчи
капча
Вызов капчи сопровождается несколькими SQL запросами. Если капча стоит например в форме быстрого ответа, то создаваемую ей нагрузку надо оптимизировать. Предлагаемый мод рассчитан на стандартную капчу, модифицированную
vlad77 Поддержка и моды для phpBB2 0 Ср 20 Авг, 2014 20:09 Посмотреть последнее сообщение
vlad77
Нет новых сообщений Оптимизация phpBB 2.0.23 под PHP 5.2
стоит ли переходить PHP 5.4 ?
Вопрос к знатокам: На сайте работает форум phpBB 2.0.23. Хостинг Зенон, сейчас поддержка PHP 5.2 ( Оптимизаторы PHP выкл. ) Стоит ли переходить на PHP 5.4 и включать оптимизатор? Возможно еще на что то обратить внимание,
Богдан Поддержка и моды для phpBB2 2 Пт 12 Янв, 2018 08:57 Посмотреть последнее сообщение
vlad77
Нет новых сообщений Rel prev next для страниц темы
Собственно сабж. Если тема разбита на страницы - выводить в head: - для первой страницы (собственно тема) - для промежуточных страниц - для
Василий_007 Поддержка и моды для phpBB2 2 Сб 27 Дек, 2014 23:45 Посмотреть последнее сообщение
Василий_007
Нет новых сообщений Мод Prune Searchs Tables
управление и оптимизация поисковых таблиц
Описание мода: С помощью этого мода Вы можете осуществить операции с вашими поисковыми таблицами для оптимизации базы данных, отредактировать (добавить/удалить слова) файл стоп-слов search_stopwords.txt. Вы можете также
Sergey Поддержка и моды для phpBB2 0 Пн 27 Фев, 2006 17:38 Посмотреть последнее сообщение
Sergey






Часовой пояс: UTC + 3 часа
Просматривают тему:
Зарегистрированные пользователи: Нет

Перейти:   
Версия для печати
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы
/a
Имя:

Пароль:

Запомнить
  Яндекс.Метрика
CrackerTracker © 2004 - 2018 CBACK.de