Как сделать HTML в одну строку

Главные вкладки

Аватар пользователя chedia chedia 25 августа 2014 в 14:50

Здравствуйте. Поднимаю эту тему потому-что так и не смог найти решения. Есть сайт Сайт Нужно сделать хтмл в одну строку, этого требует заказчик вот и мучаюсь. Пробовал ставить модуль minify. Действительно убирает некоторые переносы. Пробовал сделать как написано в Issue Всё содержимое body стало в одну строку. Но содержимое в head по прежниму с переносами. Такого же результата добился используя решение

Заменить вывод print $page;

На

<?php
$output = str_replace(array("\r\n", "\r"), "\n", $page);
$lines = explode("\n", $output);
$new_lines = array();

foreach ($lines as $i => $line) {
if(!empty($line))
$new_lines[] = trim($line);
}
?>
<?php
print implode($new_lines);
?>

Если кто-нибудь сталкивался с такой задачей помогите пожалуйста уже неделю мучаюсь. Возможно можно что то сделать с шаблоном html.tpl.php применить функцию str_replace ко всем строкам и массивам.

Комментарии

Аватар пользователя Plazik Plazik 25 августа 2014 в 20:21

"chedia" wrote:
Возможно можно что то сделать с шаблоном html.tpl.php применить функцию str_replace ко всем строкам и массивам.

Вы на верном пути, так и надо делать.

Аватар пользователя chedia chedia 25 августа 2014 в 23:22

Я только начинаю изучать php поэтому не понимаю что нужно сделать. В шаблоне есть 4 массива и несколько строк. Я так понимаю всё нужно собрать в один массив, а потом пропустить через функцию str_replace, но как это сделать?

Аватар пользователя chedia chedia 29 августа 2014 в 14:51

<?php print $doctype; ?>
language; ?>" dir="<?php print $language->dir; ?>"<?php print $rdf->version . $rdf->namespaces; ?>>
profile; ?>>
<?php print $head; ?>
<?php print $head_title; ?>
<?php print $styles; ?>

>

<?php print $page_top; ?>

<?php

$output = str_replace(array("\r\n", "\r"), "\n", $page);
$lines = explode("\n", $output);
$new_lines = array();

foreach ($lines as $i => $line) {
if(!empty($line))
$new_lines[] = trim($line);
}
?>
<?php
print preg_replace('/\s+/', ' ', implode($new_lines));

?>

<?php # print $page_top; ?>
<?php print $page; ?>
<?php print $scripts; ?>
<?php # print $page_bottom; ?>