Главная страница IT-студия  
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создание сайтов. Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры . Авторы: Кузнецов М.В., Симдянов И.В. PHP. Народные советы. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование: ступени карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Security & Cracking Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
Консультации от известных специалистов и авторов многих книг

Информационный портал
«SoftTime-INFO»




| Статьи о PHP | WML - Создание WAP страниц. Часть I.

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

Автор - Бешкенадзе А.Г.

Введение

В последнее время огромную популярность приобретают различные беспроводные устройства доступа в 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.

Русская версия English

 
  Rambler's Top100 Яндекс.Метрика Яндекс цитирования