Главная страница статей --> Хитрости при программировании php, заметки по базам данных

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

Источник: realcoding.net

Введение


В последнее время огромную популярность приобретают различные беспроводные устройства доступа в internet. Достаточно упомянуть, что 2/3 населения Российской Федерации владеют сотовыми телефонами и потенциальная аудитория посетителей internet с мобильных устройств шире, чем обычных посетителей, пользующихся компьютерами. В отличие от классического браузера, который общается с сервером по протоколу http, мобильные устройства используют протокол wap (wireless application protocol). Протокол wap определяет набор правил, которому должны следовать как wap-приложения, так и мобильные устройства.

В настоящий момент для создания wap-страниц (аналог html-страниц для мобильных устройств) используется либо язык разметки wml (wireless markup language), либо xhtml. Оба языка разметки основаны на xml и подчиняются правилам форматирования xml-документа. xhtml поддерживается не всеми сотовыми телефонами, поэтому в данной статье будет рассмотрен wml.

Здесь не будут описываться стандартные теги, особенно те которые не отличаються от тэгов, используемых при создании обычных html-страниц. Будет рассмотрена структура wml документа, и взаимодействие php-скриптов с wml.

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


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

Простая 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&amp;r=>this is siemens</a><br/>
<a href=/content/index.php?a=a_ff_kf_kffy2004&amp;r=>key figures</a><br/>
<a href=/content/index.php?a=a_journal&amp;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-документа и определяющий набор правил для xml-документа в котором стоит на него ссылка. Эти две строки предваряют собственно элементы языка и должны содержаться в каждом wml-файле.

wml - открывающий тэг, аналогичен по смыслу тегу html в html-документах.

card - собственно тэг начинающий карту, соответствуюет тэгу body в html-документе, но в отличие от body может поторяться в документе несколько раз.
Примечание

Новая строка начинается с тэга <br/>. Важно отметить, что слеш в конце тэгов, не имеющих завершающего тэга обязателен в xml документах, иначе анализатор сообщает об ошибке. Все дополнительные данные закрываються двойными ковычками (title="hello!").

Дека - <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 тип.


Для того, чтобы обычный web-сервер, например, apache, превратить в wap-сервер, необходимо в конфигурационном файле httpd.conf отыскать секцию addtype и добавить следующую директиву

addtype text/vnd.wap.wml .wml.

При динамической генерации wml-страницы, браузеру необходимо отправить заголовок, сообщающий, что он имеет дело не с обычной 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 страницу. В следующих статьях будут рассмотрены различные тэги и их применение (wml-аналоги элементов управления в html-формах).

Результаты работы wml-страниц можно просматривать при помощи следующих браузеров: opera, winwap, klondike wap browser.



Похожие статьи:
- Посещаемость сайта рефералами
- Все об AuthType или авторизация в Apache
- Делаем простейшее подобие интернет-магазина.
- Проверка формы на JavaScript
- Предопределённые переменные PHP
- Сравнительный тест эффективности языков программирования для WEB
- Статус домена
- Используем базу данных MySQL
- Времена и даты
- Использование сокетов в PHP
- HotMail своими руками, или Что может PHP
- Быстрее ветра - быстрый html
- SQLite и PHP


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.002]