background image

WAP(无线通讯协议)是在数字移动电话、个人手持设备(PDA 等)及计算机之间
进行通讯的开放性全球标准协议。随着无线通讯的不断发展,静态的 WAP 页
面在很多方面已经不能满足用户个性化的要求,因此开发者可以在 WAP 服务
器端使用诸如 PHP 等语言产生动态的 WML 页面,来满足用户的需要。

 

   WAP 的应用结构非常类似于 Internet,一个典型的 WAP 应用请求步骤描
述如下:

 

   1. 具有 WAP 用户代理功能的移动终端(如 WAP 手机),通过内部运行的
微浏览器向某一网站发送 WAP 服务请求。该请求先由 WAP 网关截获,对信息
内容进行编码压缩,以减少网络数据流量,同时根据需要将 WAP 协议转换成
HTTP

 

 

协议。    2. 协议将处理后的请求转送到相应 WAP 服务器。在 WAP 服

务器端,根据页面扩展名等属性,被请求的页面直接或由服务器端脚本解释
后输出,再经过网关传回给用户。
  从上述的 WAP 应用流程可以发现,生成动态 WAP 页面与动态产生 Web
网页的过程非常相似。但是由于 WAP 应用使用的 WML 语言来源于语法严格的
XML,因此要求输出的格式必须按 WAP 网页的规范输出。同时,由于 WAP 协
议的应用范围及移动客户端的软、硬件配置等局限性,对每次输出的页面的大
小、图像的格式及容量都有一定限制。本文笔者将以 PHP 语言为例,和广大网
络程序开发爱好者共同探讨动态输出 WAP 页面的方法和应用。
  输出简单的动态 WAP 页面
  由于生成 WAP 页面的过程和生成一般的 Web 页面非常类似,笔者通过一
个最简单的 WAP 页面的例子来介绍。不过提醒一句:由于需要 PHP 解释器来
解释该程序并输出 WAP

页面,因此所有类似的程序应以 php”为扩展名哦。

[code="php"]   < ?php   header("Content-type: text/vnd.wap.wml"); //定义输
出文档为 WML

 

类型   echo (" ");   echo ( "Hello WAP" );   echo (""); 

?> [/code] 
该实例可以在 WAP

手机模拟器中浏览,输出一句经典的 Hello WAP”语句,

但是在普通的网络浏览器中是无法识别的,原因很简单,在程序开头声明了
该输出文档为 WML 类型,只有 WAP 设备能够识别并解释。不过又要提醒一句:
常见的 HTML

语言对规范性要求不严,大多数浏览器能 宽容 地接受其中的

编写错误,但是 WML 的规范相当严格,任何的错误都可能导致无法输出所需

 

 

的页面。    实例 1 动态生成图像
  WAP 使用的图像是一种特殊的黑白图像格式:WBMP。开发者可以使用一
些现有的工具将一般图像转换成 WBMP 格式,然后在 WML 文档中使用。但是
如果在 WAP 程序中能动态地生成所需图像(如股市的 K 线图),将会使程序有
极其广阔的应用前景。PHP 提供了强大的图形绘制功能,下面的实例将将在
WAP 模拟器中显示一个黑*的矩形框。

 

    ( 注 意 : 要 使 用 GD 的 图 像 函 数 库 , 必 须 在 PHP 配 置 中 加 载
“PHP_GD.DLL”库文件。) 
[code="php"] < ?PHP   Header("Content-type: image/vnd.wap.wbmp"); //定义输
出 的 图 像 格 式 为 WBMP       Sim   =   ImageCreate(50,   50);       Swhite   = 
ImageColorAllocate(Sim,255,255,255);

 

 

 

Sblack

 

ImageColorAllocate(Sim,0,0,0);       ImageRectangle(Sim,   5,   5,   20,  20,   Sblack); 
ImageWBMP(Sim);   ImageDestroy(Sim);   ?> [/code]
实例 2 处理汉字