кошмар программиста

Зарегистрирован: Mar 2004
Место проживания: Russia, Saint-Petersburg
Публикаций: 98
Статус:  |
Поскольку в сети активно сейчас идут споры по поводу оптимизации, поднятии ключевых слов как можно выше и ближе к началу документа да и просто для сохранения траффика , то многие хотят вытягивать html-код в одну строку...
На оф. сайте видел два хака, но они не понравились тем, что один не полностью вытягивал html код, а второй вытягивал всё совсем в одну строку из-за чего выскакивали ошибки яваскрипта...
Поэтому я взял и написал свой (заюзав пару функций откуда-то из сети)...может кому пригодится...
Проверял на версиях 3.0.7 и 3.0.9 ... но думаю что на других отличий не будет...
Хак вытягивает в строку всё, что не входит в теги <script> а также убирает ненужные пробелы в теге <script>
1. Открываем файл includes/functions.php
2. Находим там функцию print_output
3. После функции print_output вставляем следующее:
PHP:
// ###################### Vadim S. Replace Spaces Hack #######################
function clean_spaces($source){
preg_match_all("{<script[^>]+>.*?</script>}is", $source, $match);
$scripts = $match[0];
$source = preg_replace("{<script[^>]+>.*?</script>}is", '###vadim_s_replace###', $source);
$patterns = array ("\n", "\r");
$replace = array ('', '');
$source = str_replace($patterns, $replace, $source);
foreach($scripts as $temp_script) {
$source = preg_replace("!###vadim_s_replace###!",$temp_script,$source,1);
}
$patterns = array('/>s+</', '/^s*/m', '/>s+</');
$replace = array('> <', '', '> <');
$source = preg_replace($patterns, $replace, $source);
$pattern=array("\r\n<!--", "-->\r\n", "\r\n//", "\n//", "\r//");
$replace=array('<!--', '-->', ' //', ' //', ' //');
$source = str_replace($pattern, $replace, $source);
return $source;
}
$vartext=clean_spaces($vartext);
// ###################### Vadim S. Replace Spaces Hack #######################
P.S.: Если вещь нужная, то кто-нить может залить в дамп...я не против =)
__________________
Верить никому нельзя....Даже себе...Мне - можно...
Сообщение было отредактировано Zlomrak 22-09-2005 в 00:06
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|