Создание WML страниц

В последнии года большую популярность приобретают разные беспроводные устройства доступа в интернет. Достаточно упомянуть, что 65% населения России имеют мобильные телефонами и аудитория посетителей интернета с мобильных устройств больше, чем с компьютерамов. Отличие классического браузера, который общается с сервером по протоколу HTTP, мобильные телефоны используют протокол WAP (Wireless Application Protocol). Этот протокол содержит набор правил, которому должны следовать как мобильные телефоны, так и WAP приложение.

Сейчас для создания WAP страниц (аналог HTML страниц для мобильных телефонов) применяют язык разметки WML (Wireless Markup Language) или xHTML. Эти языки разметки основаны на XML и соответствуют правилам форматирования XML-документа. xHTML поддерживают не все мобильные телефоны, поэтому в этой статье будет рассмотрен только WML.

Я не буду здесь описывать стандартные теги, так как большинство похожи на теги используемые для HTML страниц. Будет рассмотрена структура WML документа, и взаимодействие PHP скриптов с WML.

Глава 1 "Структура WML документа"


Вся информация в WML находится в так называемых деках. Дек — это наименьший блок данных, который может быть получен от сервера. В деках содержатся карты (). В одной деке обязательно должна быть одна карта, может конечно находится и больше, ограничений на количество нет.

Простая wml страница взятая с WAP сайта siemens.com.

<?xml version="l.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="Siemens"> <p> <a href="http://communication-market.siemens.de/wap">Games and more</a><br/> <a href="http://communication-market.siemens.de/wap/countries.asp?content=rtlo">Sounds and graphics</a><br/> <a href="/content/index.php?a=a_this&r=">This is Siemens</a><br/> <a href="/content/index.php?a=a_ff_kf_kffy2004&r=">Key Figures</a><br/> <a href="/content/index.php?a=a_journal&r=">Siemens Journal</a><br/> <a href="/contact/index.php">Contact</a><br/> <img src="http://server-uk.imrworldwide.com/cgi-bin/wapcount?" alt=""/> </p> </card> </wml>


<?xml version="l.0"> - это стандартная инструкция, показывающая, что это XML-документ. Этот тэг так же содержит версию языка XML, необходимую для последующего расширений языка.

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> - объявляет тип документа — WML и адрес, по которому будет расположен файл с DTD. DTD (Document Type Definition) - описание типа документа, определяющее правила для XML документа в котором стоит ссылка на DTD. Эти две строчки должны содержаться в каждом WML-файле.

WML - открывающий тэг, соответствует тэгу <html> в HTML-документах.

CARD - тэг с которого начинается карта, соответствует тэгу <body> в HTML документе, но в отличие от него может повторяться несколько раз.

Каждая новая строчка начинается с тэга. Отметим, что слеш("/") в конце тэга, не имеющих завершающего тэга обязателен в XML документах, иначе будет сообщение об ошибке. Все другие данные закрываются двойными ковычками (title="test").

Дека - <wml></wml>

Карта - <card></card>

Пример страницы с несколькими картами:

<?xml version="l.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="card1"> <a href="#card2">Go to card2</a><br/> </card> <card title="card2"> <a href="#card1">Return card1</a><br/> </card> </wml>

Как видно все просто! Помните, что есть ограничение на общий размер WML файла, примерно 5-10 кб, это зависит от модели мобильного телефона и от оператора. Из этого следует, что количество карт должно оставаться в разумных пределах.

Глава 2 "Динамическая генерация". MIME-type. Конфигурирование сервера.


Чтобы из обычного Web сервера(к примеру Apache) сделать WAP сервер, нужно в конфигурационном файле httpd.conf найти раздел AddType и добавить следующую строку

AddType text/vnd.wap.wml .wml.

Когда WML страницы генерируются динамически, WAP браузеру нужно отправить заголовок, которые сообщает, что WAP браузер имеет дело не с HTML страницей, а с страницей предназнаеченной для мобильного телефона. Это можно сделать с помощью функции header

<?php # Посылаем заголовок который "обьясняет" клиенту, что перед ним WML страница header("Content-type: text/vnd.wap.wml"); ?>

Так сделать WML страницу при помощи PHP можно следующим образом

<?php # Отсылаем заголовок который "обьясняет" клиенту ,что это wml документ header("Content-type: text/vnd.wap.wml"); #Выводим саму страницу print ' <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> '; print ' <wml> <card id="id1" title="Card1"> Hello! People This is My first wml page! </card> </wml> '; ?>

Заключение


В этой статье я познакомил вас с тем, как сделать элементарную WML страницу. В следующих статьях я рассмотрю другие тэги и их применение.

инком загородная недвижимость в Москве
Автор: Бешкенадзе А.Г.
Источник: softtime.ru

Советую также почитать: