[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_replace и форматирование вывода html-кода
f606628
Добрый день.

Проискал интернет на предмет форматирования вывода итогового html-кода страницы и приведения его в оптимизированный вид - в 1 строку в общем.

Нашел два очень идельных решения, которые удаляют все переводы строк, удаляют табуляцию, в общем удаляют все лишние - но отсавляют не тронутыми форматирование вывода в тэгах textarea, pre (можно также добавить еще и javascipt, noindex - к примеру).

Вот эти две замечательные функции:



function process_data_alan_1($text) //
{
$re = '#(?ix)(?>[^\S ]\s*|\s{2,})(?=(?:(?:[^<]++|<(?!/?(?:textarea|pre|script|noindex)\b))*+)(?:<(?>textarea|pre|script|noindex)\b|\z))#';
$text = preg_replace($re, " ", $text);
return $text;
}

// и вторая посложнее (но по моему раздницы между ними нет)
// т.к. данная более прокомментирована лучше.


function process_data_alan_2($text) //
{
$re = '%# Collapse ws everywhere but in blacklisted elements.
(?> # Match all whitespans other than single space.
[^\S ]\s* # Either one [\t\r\n\f\v] and zero or more ws,
| \s{2,} # or two or more consecutive-any-whitespace.
) # Note: The remaining regex consumes no text at all...
(?= # Ensure we are not in a blacklist tag.
(?: # Begin (unnecessary) group.
(?: # Zero or more of...
[^<]++ # Either one or more non-"<"
| < # or a < starting a non-blacklist tag.
(?!/?(?:textarea|pre)\b)
)*+ # (This could be "unroll-the-loop"ified.)
) # End (unnecessary) group.
(?: # Begin alternation group.
< # Either a blacklist start tag.
(?>textarea|pre)\b
| \z # or end of file.
) # End alternation group.
) # If we made it here, we are not in a blacklist tag.
%ix'
;

$text = preg_replace($re, " ", $text);
return $text;

}



Все замечательно работает как для первой фукнкции, так и для второй, до тех пор пока размер странички относительно небольшой...
Но вот как-только страничка немного поболее в плане HTML-кода - все белый экран.


Не ужели эти фукнции съедают так много ресурсов (или у них есть какое-то ограничение) - и стоит ли их использовать? Есть очень большая потребность оптимизировать весь html-код в 1 строку.

Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.