Аргерих Л. О языке РНР. Часть 5. Страница 123


RewriteCond %{HTTP_USER_AGENT} 7110

«Перенаправить их на страницу для беспроводных устройств

RewriteRule /](.*)$ /home/mydirectory/wireless/home.wml [L]

Теперь надо перезапустить сервер Apache (воспользуйтесь apachectl graceful для перезапуска сервера, позволив предварительно завершиться всем соеди­нениям; под Windows этим действиям эквивалентна команда apache -к).

Для создания WML-совместимого сайта с помощью РНР требуется лишь за­дать заголовок content-type, чтобы броузер WAP знал, что ему поступят дан­ные WML. Заголовок надо послать так: header( "Content-type: text/ vnd.wap.wml").

Таким образом, страница WML при отправке из РНР будет выглядеть так:

<?php

header("Content-type: text/vnd.wap.wml");

?>

<wml> <card id="home">

<p>Welcome, wireless users! </p> </card> </wml>

Есть ли для этого библиотека?

Существует «библиотека» для генерирования страниц WML, которая назы­вается HAWHAW (HTML And WML Hybrid Adapted Webserver). Она дает возможность помещать объекты WML непосредственно в код РНР, не забо­тясь о действительном кодировании в WML (не нарушая, таким образом, ко­да РНР). HAWHAW можно взять на http://www.hawhaw.de/"> http://www.hawhaw.de/. HAWHAW способна также распознавать:

♦ Броузеры HDML (предшественник WAP, все еще распространенный в Се­верной Америке), которые могут включать сколько угодно карт

♦ Броузеры WML/WAP, включающие только одну колоду и карту

♦ Броузеры AvantGo и iMode, генерируя надлежащий код HTML

♦ Броузеры HTML

HAWHAW - это не устанавливаемое приложение, а сценарий, включаемый

в код РНР с помощью директивы include( "hawhaw, inc").

Прекрасная особенность HAWHAW в том, что она предоставляет структури­рованную схему генерирования страниц, при которой страницы предоставля­ются броузеру на его родном языке. Благодаря этому с помощью HAWHAW можно создавать структурированные страницы как HTML, так и WML, не заботясь о том, куда будут отправлены наши данные.

Работа cHAWHAW

Колода WML открывается с помощью класса HAW_decк, который на каждой странице должен быть только один (поскольку беспроводные страницы ис­пользуют для взаимодействия карты). Простую страницу WML с помощью HAWHAW можно создать так:

<?php

$page = new HAW_deck("Simple Page Made With HAWHAW"); $page->add_text($HAW_text_identifier);

$page->create_page(); ?>

У класса HAW_deck достаточно много свойств. В их число входят функции для добавления на генерируемую страницу текста, форм, таблиц, ссылок, гра­фики, наборов ссылок (linksets) и баннеров. Приведенный выше сценарий сгенерирует ошибку, поскольку отсутствует экземпляр HAW_text (еще одного класса HAWHAW для создания текста). Ниже перечисляются методы клас­са HAW^deck: