Одним из преимуществ такой технологии является то, что все таблицы отображаются в абсолютно одинаковом стиле. Чем меньше программного кода будет потрачено на программирование таблиц, тем меньше вероятность возникновения ошибки. Это большое преимущество для программистов, стремящихся к минимизации больших сегментов идентичного HTML-кода. Кроме того, при этом увеличивается качество программирования. Если в функции имеется ошибка, PHP выводит сообщение о ней. Если ошибок нет, таблицы будут отображаться идентично и в корректном формате.
Если требуется изменить формат таблицы, код достаточно изменить только в одном месте. Более того, PHP предоставляет возможность вносить изменения в данные до их отображения. В листинге 26.1 код переключает регистр обозначений. Если класс работает в двух режимах, обозначения могут располагаться сверху и слева.
PHP позволяет также оформить самые существенные моменты CGI-вывода: большой блок PHP окружается HTML-кодом, поэтому вывод кода появляется на увеличенной странице. Это полностью аналогично SSI-подходу (Server-Side Includes - вставка на стороне сервера). Тег SSI может вызывать CGI-код и вставлять на его место вывод.
Этот подход является уместным в ситуациях, когда ваш Web-узел статический, но имеются и определенные ключевые зоны. Преимущество заключается в уменьшении нагрузки на Web-сервер. PHP используется только тогда, когда он действительно нужен. Код, представленный в листинге 26.2, генерирует информацию, которая совсем не изменяется, но довольно просто представить себе код, который выбирает рыночные квоты из базы данных. Это избавляет от необходимости редактировать HTML-страницу после каждого обновления данных, но те части, изменение в которых происходит не слишком часто, сохраняются в статическом HTML-коде.

| Листинг 26.2. Оформление CGI-вывода_
<html> <head>
^^^хЛистинг 26.2</title>
</head>
<body>
<111>Карта цветов</111> <Р>
В этой карте представлены цвета, отображающиеся
во всех браузерах. Эти цвета не должны
отображаться размытыми на компьютере,
имеющем цветовую палитру 256 цветов.
</p>
<Р>
Эта карта отображается только в браузерах, которые поддерживают фоновые цвета ячеек таблиц.
</p> <?php
$color = array("0Q", "33", "66", "99", "CC", "FF"); 
$nColors = count($color);
for($Red = 0; $Red < $nColors; $Red++)
{
print("<table>n");
for($Green = 0; $Green < $nColors; $Green++)
{
print("<tr>n");
for($Blue = 0; $Blue < $nColors; $Blue++)
{
$CellColor = $color[$Red] . $color[$Green] . $color[$Blue]; print("<td bgcolor="#$CellColor">");
print("<tt>$CellColor</tt>"); print("</td>n");
}
print("</tr>n");
}
print("</table>n");
}
</body> </html>

В листинге 26.2 продемонстрирован пример динамического вывода, однако на практике часто приходится сталкиваться с противоположной ситуацией. Ваш Web-узел может быть абсолютно статическим, но по ходу дела требуется принимать запросы по каталогу. PHP предлагает хорошие решения по приему данных в формах. Первым этапом решения такой задачи является создание HTML-страницы и запрос имени и адреса (листинг 26.3).

Листинг 26.3. Форма запроса каталога

<html> <head>
<title> Листинг 26.3</title>
</head>
<body>
<P>
Введите имя и адрес для получения бесплатного каталога. </p>
<form action="26-4.php">
<table>
<tr>
<td>Имя</td>
<td><input type="text" name="name"></td>
</tr> <tr>
<td>Адрес</td>
<td><input type="text" name="address"></td> </tr> <tr>
<td>Город</td>
<td><input type="text" name="city"></td>
</tr> 
<tr>
<td>Штат</td>
<td><input type="text" name="state"></td> </tr> <tr>
<td>ZIP</td>
<td><input type="text" name="zip"></td>
</tr> <tr>
<td><input type="reset"></td> <td><input type="submit"></td>
</tr>
</table>
</form>
</body>
</html>