Выбрано из блога slamdunk3
1. Формат файла Первая проблема, с которой вам придется столкнуться, — это формат файла. При веб-разработке все используют html или xhtml. Когда дело доходит до разработки wap, вы должны использовать wml. Что такое wml? более подробную информацию я упомянул здесь лишь вкратце. На мой взгляд, wml похож на xml и имеет очень строгий формат. При создании wml-страниц вам придется использовать wml для отображения
. PHP для динамического вывода необходимо отправить сообщение заголовка, чтобы указать, что это страница wml, а не какой-либо другой *ml.
header("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
Здесь используется набор символов gb2312. На мобильной платформе проблем нет, но на платформе China Unicom необходимо использовать UTF-8. Для большей универсальности безопаснее использовать UTF. -8. Это
заголовок("Тип контента: text/vnd.wap.wml; charset="utf-8"");
?>
2. Кодировка
Как упоминалось выше, весь набор символов должен использовать utf-8. Это набор символов, который поддерживает несколько языков. Китайский символ занимает два байта, а utf-8 — 4 байта, поэтому он может вместить такое количество. информации больше. Китайские иероглифы, написанные на мобильном телефоне, могут представлять собой кучу искаженных символов после преобразования кода страницы в utf-8 при последующем открытии. Поэтому при оставлении комментариев используйте как можно больше комментариев на английском языке, чтобы избежать ненужных проблем. Я не смогу понять это в будущем.Такие инструменты, как editplus и ultraedit, могут конвертировать внутренний код файлов.
3.
Действительно сложно адаптироваться к основным мировым производителям мобильных телефонов. странных и может поддерживать различные форматы, например, рингтоны, некоторые поддерживают 16, 32, 48 аккордов, поддерживают Mid, WMV, некоторые не полностью поддерживают GIF, PNG, BMP, а некоторые не полностью; Поддержите это. Хотя это повышает качество и стоимость мобильных телефонов, но это сложно для братьев, которые занимаются разработкой мобильных телефонов, потому что неизбежно соответствие изображений, мелодий и другой мультимедийной информации, которую может иметь мобильный телефон. Поддержка Этот процесс согласования обычно называется адаптацией мобильного телефона.
Для адаптации мобильного телефона нам обычно нужна следующая информация:
1) Подробный паспорт адаптации мобильного телефона, в котором должны быть подробно описаны мелодии звонка и форматы изображений, которые может поддерживать мобильный телефон, а также модель мобильного телефона и другая информация.
2) Чтобы правильно получить UA мобильного телефона, что такое UA (пользовательский агент), который на самом деле является информацией о мобильном телефоне пользователя.
Только с помощью вышеизложенного мы можем внести изменения. Вот один из классов, которые я написал на wap. разработку можно использовать для получения номеров мобильных телефонов и UA мобильных телефонов
/**
.
* Название класса: мобильный
* Описание: Информация о мобильном телефоне.
* Прочее: Написано случайно.
*/
класс мобильного
{
/**
* Имя функции: getPhoneNumber
* Функция: получить номер мобильного телефона
* Входные параметры: нет
* Возвращаемое значение функции: возвращаемый номер в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция getPhoneNumber()
{
если (isset($_SERVER['HTTP_X_NETWORK_INFO']))
{
$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
Верните $getstr1;
}
elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
{
$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
Вернуть $getstr2;
}
elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
{
$str3 = $_SERVER['HTTP_X_UP_SUBNO'];
$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
Вернуть $getstr3;
}
elseif (isset($_SERVER['DEVICEID']))
{
Вернуть $_SERVER['DEVICEID'];
}
еще
{
Вернуть ложь;
}
}
/**
* Имя функции: getHttpHeader.
* Функция: получить информацию заголовка
* Входные параметры: нет
* Возвращаемое значение функции: возвращаемый номер в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция getHttpHeader()
{
$стр = '';
foreach ($_SERVER как $key=>$val)
{
$gstr = str_replace("&","&",$val);
$str.= "$key -> ".$gstr."rn";
}
Вернуть $стр;
}
/**
* Имя функции: getUA
* Функция: Получить UA
* Входные параметры: нет
* Возвращаемое значение функции: возвращаемый номер в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция getUA()
{
если (isset($_SERVER['HTTP_USER_AGENT']))
{
Верните $_SERVER['HTTP_USER_AGENT'];
}
еще
{
Вернуть ложь;
}
}
/**
* Имя функции: getPhoneType
* Функция: получить тип мобильного телефона
* Входные параметры: нет
* Возвращаемое значение функции: строка в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция getPhoneType()
{
$ua = $this->getUA();
если($ua!=ложь)
{
$str = взорваться(' ',$ua);
Вернуть $str[0];
}
еще
{
Вернуть ложь;
}
}
/**
* Имя функции: isOpera
* Функция: определить, является ли это оперой
* Входные параметры: нет www.knowsky.com
* Возвращаемое значение функции: строка в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция isOpera()
{
$uainfo = $this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo))
{
Вернуть истину;
}
еще
{
Вернуть ложь;
}
}
/**
* Имя функции: isM3gate
* Функция: определить, является ли это m3gate
* Входные параметры: нет
* Возвращаемое значение функции: строка в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция isM3gate()
{
$uainfo = $this->getUA();
если (preg_match('/M3Gate/i',$uainfo))
{
Вернуть истину;
}
еще
{
Вернуть ложь;
}
}
/**
* Имя функции: getHttpAccept.
* Функция: получить HA
* Входные параметры: нет
* Возвращаемое значение функции: строка в случае успеха, false в случае неудачи.
* Прочие инструкции: инструкции
*/
функция getHttpAccept()
{
если (isset($_SERVER['HTTP_ACCEPT']))
{
Верните $_SERVER['HTTP_ACCEPT'];
}
еще
{
Вернуть ложь;
}
}
/**
* Имя функции: getIP
* Функция: получить IP-адрес мобильного телефона
* Входные параметры: нет
* Возвращаемое значение функции: строка возвращена успешно.
* Прочие инструкции: инструкции
*/
функция получитьIP()
{
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
if (($ip_ != "") && ($ip_ != "неизвестно"))
{
$ip=$ip_;
}
вернуть $ip;
}
}
?>
4. Дизайн страницы
При разработке wap-страница очень проста. Она не может быть проще, чем html. В wap1.0 нет таких грязных вещей, как таблицы. Все теги записаны в теге card. Его можно использовать для сегментации. Таким образом, легко создавать страницы.
5. Симулятор
Для разработки wap необходимо использовать различные симуляторы. Лучше всего использовать m3gate, openwave, Opera и Winwap. лучше не использовать его для тестирования. Его совместимость настолько хороша, что даже если на странице есть ошибки, их можно игнорировать. Проверка аналогична использованию браузера для проверки веб-страницы: просто введите URL-адрес. Нет ничего проще
6. Примечания
1) Пробелы, особенно при определении DTD.
эхо "";
?>
я
использовал перестановку страниц, чтобы удалить некоторые пробелы. Мне потребовалось два дня, чтобы найти ошибку. Не следуйте моему примеру.
) Теги, если теги не спарены, будет выдана ошибка. Только обратите внимание, это легко исправить.