Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

33.2. Оптимизатор кода HTML

В наше время, когда большинство пользователей Интернета работают в нем через dial-up с помощью модема, остро стоит вопрос о скорости загрузки сайта. Очень долгая загрузка, естественно, не доставляет никомуудовольствия. Конечно, основной способ уменьшить объем странички — использовать меньше графики, аппетов и т. д. Этим должны заниматься сами Web-мастеры. Есть и другой способ — оптимизировать код HTML, т. е. убрать лишние пробелы, переносы строк, заменить длинные теги аналогичными, но короткими. Если при этом сайт состоит, допустим, из ста страниц, то каждую редактировать долго и нудно. Лучше доверить эту работу скрипту.

Сначала нужно решить, что должен делать наш скрипт:

• убирать лишние пробелы,

• убирать все переводы строк,

• заменять некоторые длинные теги короткими.

Вы усмехнетесь и скажете, что этого мало и загрузка страничек едва ли ускорится. Но когда вы увидите, как скрипт уменьшает объем странички, сделанной в визуальном редакторе примерно на 30 %, вы убедитесь в своей неправоте.

Рассмотрим скрипт, который облегчит жизнь посетителям вашей странички.

/* тут начинается скрипт */

<?php

/* запускать скрипт следует с параметром files, равным имени файла, подлежащего оптимизации */

/* открываем файл с именем, указанным в параметре files, для чтения */

$fp = fopen($files, "r");

/* читаем данные из файла в массив $soo */

$soo = fread($fp, filesize( $files ));

/* убираем все переносы строки */

$soo = str_replace("\n", "", $soo);

/* заменяем все пробелы более одного подряд одним пробелом */

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

$soo = str_replace(" ", " ", $soo);

/* надеемся, более десяти пробелов подряд нам не встретится */

/* теперь убираем все пробелы между кавычками > и < */

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

$soo = str_replace ("> <", "><", $soo);

/* убираем все пробелы перед и после кавычек (думаем, больше 5 пробелов не будет)*/

$soo = str_replace("< ","<", $soo);

$soo = str_replace("< ","<", $soo);

$soo = str_replace("< ","<", $soo);

$soo = str_replace("< ","<", $soo);

$soo = str_replace("< ","<", $soo);

$soo = str_replace(" >",">", $soo);

$soo = str_replace(" >",">", $soo);

$soo = str_replace(" >",">", $soo);

$soo = str_replace(" >",">", $soo);

$soo = str_replace(" >",">", $soo);

/* а теперь заменим длинные теги короткими, аналогичными по сути */

$soo = str_replace("<address>", "<i>", $soo);

$soo = str_replace("<strong>", "<b>", $soo);

$soo = str_replace("<em>", "<i>", $soo);

$soo = str_replace("<strike>", "<s>", $soo);

$soo = str_replace("<blockquote>", "<ul>", $soo);

$soo = str_replace("<var>", "<i>", $soo);

$soo = str_replace("<cite>", "<i>", $soo);

$soo = str_replace("<code>", "<tt>", $soo);

$soo = str_replace("<kbd>","<tt>", $soo);

$soo = str_replace("<samp>", "<tt>", $soo);

/* закрываем файл */

fclose($fp);

/* теперь открываем этот же файл для записи */

$fp = fopen($files, "w");

/* заменяем старый код оптимизированном из массива $soo */

$fw = fwrite($fp, $soo);

/* закрываем этот файл (теперь уже окончательно) */

fclose($fp);

/* конец скрипта */

?>


СОВЕТ

Для удобства можно сделать страничку с формой (одно поле текста с именем files и кнопка «Submit») и action, равным имени скрипта-оптимизатора, где нужно указать имя файла и нажать на кнопку. В этом случае нужно будет сделать мета-тег в скрипте, возвращающий вас на страничку с формой:

<meta http-equiv="refresh" content="0;URL=Ваша_страничка_с_формой">


Заключение

Теперь вы умеете писать скрипты на РНР. Фантазируйте, модифицируйте, обязательно придумывайте что-то свое. Ведьэтотязык, на самом деле, дает очень широкий простор для вашей мысли. Реализовать можно очень много интересных вещей. И гостевая книга или счетчик — это капля в море, по сравнению с перспективой ваших идей в области РНР. Успехов вам в дальнейших разработках.

<< Предыдущий параграф Следующий параграф >>
Оглавление