Артём Мáлков

Минификация (сжатие) исходного кода (HTML) в 1C-Bitrix на PHP

26 фев9 комм

Хочу посвятить теме минификации несколько статей, в которой мы рассмотрим минификацию исходного кода сайта на различных популярных CMS.

Что такое минификация? Это процесс, при котором уменьшается исходный код сайта на выходе за счет удаления лишних пробелов, переводов строк, комментариев и прочих ненужных элементов. При этом функциональность сайта не теряется.

Если говорить еще проще – мы делаем HTML-код в одну строку.

Для чего это требуется? Таким образом мы удаляем мусор и уменьшаем вес страницы, тем самым в какой-то степени ускоряя загрузку сайта в целом.

Для того чтобы реализовать минификацию в 1C-Bitrix, воспользуемся событием «OnEndBufferContent» и для большей корректности работы сделаем условие на проверку раздела сайта.

Установка скрипта

1. Подключитесь к вашему сайту по FTP.

2. Откройте файл init.php в папке /bitrix/php_interface/.

3. Сразу после <? вставьте скрипт:

if(SITE_ID == 's1') {
	
	function minify_html(&$buffer) {

		$buffer = preg_replace(
			array(
				'/\>[^\S ]+/s',
				'/[^\S ]+\</s',
				'/(\s)+/s',
				'/<!--(?![^<]*noindex)(.*?)-->/'
			),
			array(
				'>',
				'<',
				'\\1',
				''
			),
			$buffer
		);

	}

	AddEventHandler('main', 'OnEndBufferContent', 'minify_html');
	
}

Здесь «s1» - это ID вашего сайта. Узнать можно по пути «Настройки» (левое меню) – «Настройки продукта» - «Сайты» - «Список сайтов» в панели управления сайтом.

Сохраните изменения и отправьте файл обратно на сайт.

4. При необходимости очистите кэш сайта. Установка закончена.

Рекомендуем к просмотру
Минификация (сжатие) исходного кода (HTML) в MODX Revo на PHP
Хаки
Минификация (сжатие) исходного кода (HTML) в WordPress на PHP
Посты
Минификация (сжатие) исходного кода (HTML) в DLE на PHP
Хаки
9
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 2
    766
      •  Гости
    23 ноя в 09:45

    Нужна срочная помощь как оперативно откатить данное изменение назад - после вставки кода в init.php полностью упал сайт. Как откатить изменения данного кода в Битрикс Малый Бизнес 17? Какие файлы откатить из бэкапа?

      • 9
      1067
        •  Команда Pandoge
      23 ноя в 12:51

      Serg, нужно просто удалить тот код который вы вставили в файл init.php + очистить кэш сайта.

    • 2
    766
      •  Гости
    10 окт в 12:59

    интересно конечно , но сразу появляется вопрос как ее отключить для определенной страницы например , тк возможны проблемы с выводом 404 тойже

      • 7
      1067
        •  Команда Pandoge
      10 окт в 16:30

      Василий, для этого, в первой строке добавляете нужные вам разделы сайта. Сейчас строка

      if(SITE_ID == "s1") {

      Если не ошибаюсь, минифицирует код только на самом сайте (без админки).

      • 2
      766
        •  Гости
      16 окт в 19:15

      Артем Мáлков да , вы абсолютно правы админку не трогает , может у кого-то будет подобное - например отображение кривое или еще что

      не используйте комментирование вида // однострочное т.к при минификация данный комментарий вырезает напрочь код ))

      пример

      <script type="text/javascript">
      $(window).resize(function(){ // BX.addCustomEvent('onWindowResize', function(eventdata) {

      убрать коммент или заменить на /* */

      <script type="text/javascript">
      $(window).resize(function(){ /*  BX.addCustomEvent('onWindowResize', function(eventdata) {*/

      в общем вы поняли ..)

      • 3
      766
        •  Гости
      16 окт в 19:17

      Артем Мáлков : удачи в развитии , рад твоему блогу , спасибо .

      • 7
      1067
        •  Команда Pandoge
      23 ноя в 12:54

      Василий, как еще вариант - немного подправить код, чтобы сначала удалялись комментарии, а потом уже переносы строк.

    • 2
    766
      •  Гости
    17 мар в 09:31

    Здравствуйте, а под DLE возможно такое сделать? и как! спс.

      • 15
      1067
        •  Команда Pandoge
      17 мар в 14:09

      Владимир, да возможно. Сегодня - завтра напишем как

Подняться наверх
«Pandoge» - помощник вебмастера