ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Интегрирование в HTML-код. Часть Третья.


19-06-2015

Страница, показанная в листинге 26.3, представляет собой простейшую форму ввода. Каждый тег ввода после щелчка на кнопке ввода (submit) преобразуется в массив _REQUEST, и вызывается сценарий, приведенный в листинге 26.4. Этот сценарий открывает файл requests.txt для добавления и записывает в него все поля. Поля разделяются символами табуляции, что упрощает последующий ввод данных файла в электронную таблицу.
Листинг 26.4. Вывод формы

<html> <head>
^^^^Листинг 26.4</title>
</head>
<body>
<?
/*
** обработка ввода из формы и добавление его в файл */
$fp = fopen("/tmp/requests.txt", "a");
if($fp)
{
//ввод пользователя
$_REQUEST['name'] = substr(0, 16, $_REQUEST['name']); $_REQUEST['address'] = substr(0, 32, $_REQUEST['address']); $_REQUEST['city'] = substr(0, 16, $_REQUEST['city']); $_REQUEST['state'] = substr(0, 2, $_REQUEST['state']); $_REQUEST['zip'] = substr(0, 10, $_REQUEST['zip']); //заблокировать файл flock($fp, (LOCK_SH)); //записать запрос
fputs($fp, $_REQUEST['name'] . "t" . $_REQUEST['address'] . "t" . $_REQUEST['city'] . "t" . $_REQUEST['state'] . "t" . $_REQUEST['zip'] . "n"); //release lock 
flock($fp, LOCK_UN); //close the file fclose($fp);
}
<p>
Спасибо за запрос каталога! </p>
<p>
<a href="2 6-3.html">Возвратиться на страницу</a>
</p>
</body>
</html>
26.2. Использование PHP-кода для вывода всего HTML-кода
Любой пример из предыдущего раздела можно считать отличным первым шагом интеграции PHP-кода в Web-узел. Его вклад в нагрузку на сервер очень незначителен. Web-узлы, использующие подобную методику, можно классифицировать как Web-узлы с возможностями PHP. Небольшое добавление PHP-кода позволяет выделить их в отдельную категорию. Дальнейшим шагом будет усиление PHP-кода: Web-узел, полностью созданный с использованием PHP-кода. При таком подходе каждый выводимый байт создается с помощью PHP. Функция print отсылает HTML-теги. Страницы являются сценариями, заключенными между парой PHP-тегов.
Вероятно, вы уже обратили внимание, что в большинстве примеров, приведенных в этой книге, используется именно такой подход. Я обнаружил, что, несмотря на то что при таком подходе требуется больше времени, таким кодом лучше управлять. Поскольку информация помещается в PHP-переменные, позднее будет просто добавить к ней что-то динамически. Это также улучшает читаемость, несмотря на усложнение страниц. Сравните простой пример, приведенный в листинге 26.5, с примером из листинга 26.6. Но при этом цвет фона меняется в зависимости от времени суток.

| Листинг 26.5. Смешение PHP- и HTML-кода_
<html> <head>
^^^^Листинг 26.5</title>
</head>
<?php
$Hour = date("H");
$Intensity = round(($Hour/24.0)*(0xFF)); $PageColor = dechex($Intensity) .
dechex($Intensity) .
dechex($Intensity);
?>
<body bgcolor="#<?php print($PageColor); ?>">
<111>Листинг 26.5</h1>
</body>
</html> 
I Листинг 26.6. Преобразование сценария в PHP-код
<?php
//начало документа print("<html>n"); print("<head>n");
print("<title> Листинг 26.6</title>n"); print("</head>n");
$Hour = date("H");
$Intensity = round(($Hour/24.0)*(0xFF)); $PageColor = dechex($Intensity) .
dechex($Intensity) .
dechex($Intensity); // отобразить тело
print("<body bgcolor="#$PageColor">n"); print("<h1>Листинг 26.6</h1>n"); print("</body>n");
print("</html>n");

Мой опыт свидетельствует о том, что хранение HTML-кода в сценарии PHP позволяет очень легко и быстро вносить изменения. Не нужно искать открывающие и закрывающие теги в HTML-коде, как в листинге 26.5, что позволяет разбить код на отдельные строки, которые в выводимых на экран браузера строках будут объединены (в качестве примера можно привести текст заголовка). При этом можно улучшить читаемость кода не в ущерб представлению. Таким образом, упрощается работа с таблицами. Наличие пробела между тегом td и изображением приводит к появлению дополнительного пикселя. Для HTML-кода решение заключается в переделке всей строки. В сценарии PHP можно иметь множество вызовов print и отправить завершение строки только в конце. В результате получим одну строку вывода при читаемом исходном коде.
Польза этого метода возрастает по мере увеличения объема проекта. Я создал 50-страничные приложения с использованием обоих подходов и могу ручаться за ценность метода помещения всего HTML-кода в PHP-коде.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Интегрирование в HTML-код. Часть Вторая. PHP. Интегрирование в HTML-код. Часть Четвёртая.