В предыдущих главах описывались основы PHP. На примерах использования отдельных функций вы познакомились с основными проблемами программирования. Но все продемонстрированные ранее примеры были фрагментарными, выбранными здесь для иллюстрации применения конкретного оператора языка PHP. В этой главе показано, каким образом можно интегрировать PHP в Web-узел. Это поможет разработчику понять, создавать ли Web-узел полностью с помощью PHP, использовать ли PHP в разных местах Web-узла или создать несколько страниц, которые будут функционировать с помощью PHP. Кроме того, в главе описывается, как использовать PHP для генерирования HTML-кода.
26.1. Вставка PHP-кода в HTML-документы
Первым и наиболее очевидным подходом при работе с PHP является создание HTML-файлов в обычном стиле: попеременное использование PHP- и HTML-тегов. Повторяющийся HTML-код можно заменить вызовом функций PHP. Большой фрагмент PHP-кода может генерировать вывод из базы данных или представлять собой сценарий ввода данных в форму. Все это ситуации, в которых долю PHP-кода в Web-узле нельзя назвать существенной, но в качестве первого шага для новичков на стезе такого программирования это очень неплохо. Для приобретения опыта можно вставить небольшие фрагменты PHP-кода, а затем можно постепенно переносить основную нагрузку на PHP.
Кроме таких простейших задач, как вставка текущей даты с помощью кода <?php print(date('Y/m/d')); ?>, можно создать функцию, которая бы включала в себя блок HTML-кода. В листинге 26.1 задается класс для печати HTML-таблиц.
Листинг 26.1. Функция форматирования
<?php /*
** Простейший класс для создания HTML-таблиц */
class HTMLTable {
static function start($header=FALSE)
{
print("<table border="1">n");
if(is_array($header))
{
print("<tr>n"); foreach($header as $h)
{
print("<th>" .
strtoupper($h) . "</th>n");
}
print("</tr>n");
}
}
static function end()
{
print("</table>nn");
}
static function printRow($label, $field)
{
print("<tr>n"); //Описание
if($label !== "")
{
print("<th>" .
strtoupper($label) . "</th>n");
}
if(!is_array($field))
{
$field = array($field);
}
foreach($field as $key=>$value)
{
print("<td>"); if($value === "")
{
print(" ");
}
else
{
print($value);
}
print("</td>n");
}
print("</tr>n");
}
static function printSet($set)
{
foreach($set as $field)
{
if(isset($field['label']))
{
$label = $field['label'];
unset($field['label']);
}
else
{
$label = "";
}
HTMLTable::printRow($label, $field);
}
}
}
?>
<html> <head>
<title>Листинг 26.1</title>
</head>
<body>
<p>
Это пример использования функции программирования часто используемых фрагментов HTML-кода. Он выводит таблицу.
</p> <?php
//отобразить таблицу с обозначениями слева
HTMLTable::start();
HTMLTable::printRow('этап 1', 'Начало таблицы');
HTMLTable::printRow('этап 2', 'Печать строк');
HTMLTable::printRow('этап 3', 'Завершение таблицы');
HTMLTable::end();
?> <p>
Класс HTMLTable позволяет отображать все HTML-таблицы в одинаковом стиле. Для того чтобы изменить отображение всех таблиц, необходимо отредактировать класс. Аналогичной технологией является Cascading Style Sheets, но ее реализация в PHP означает, что в данные можно вносить изменения неограниченное число раз перед созданием HTML- кода.
Это также означает, что можно четко идентифицировать данные, не влияя на конечное размещение документа.
</p> <?php
//отобразить таблицу с обозначениями сверху HTMLTable::start(array('artist', 'song')); HTMLTable::printSet(array(
array('Thelonious Monk', 'Bemsha Swing'),
array('John Coltrane', 'Spiral'),
array('Charlie Parker', 'Koko')
));
HTMLTable::end();
</body> </html>
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Интегрирование в HTML-код
17-06-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Создание программного обеспечения | PHP. Интегрирование в HTML-код. Часть Вторая. |