用PHP编程语言开发动态WAP页面
2024-05-04 22:54:27
供稿:网友
,欢迎访问网页设计爱好者web开发。文/成都 yell
责任编辑:大曾
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”为扩展名哦。
< ?php
header("content-type: text/vnd.wap.wml"); //定义输出文档为wml类型
echo (" ");
echo ( "hello wap" );
echo ("");
?>
该实例可以在wap手机模拟器中浏览,输出一句经典的“hello wap”语句,但是在普通的网络浏览器中是无法识别的,原因很简单,在程序开头声明了该输出文档为wml类型,只有wap设备能够识别并解释。不过又要提醒一句:常见的html语言对规范性要求不严,大多数浏览器能“宽容”地接受其中的编写错误,但是wml的规范相当严格,任何的错误都可能导致无法输出所需的页面。
实例1 动态生成图像
wap使用的图像是一种特殊的黑白图像格式:wbmp。开发者可以使用一些现有的工具将一般图像转换成wbmp格式,然后在wml文档中使用。但是如果在wap程序中能动态地生成所需图像(如股市的k线图),将会使程序有极其广阔的应用前景。php提供了强大的图形绘制功能,下面的实例将将在wap模拟器中显示一个黑色的矩形框。
(注意:要使用gd的图像函数库,必须在php配置中加载“php_gd.dll”库文件。)
< ?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);
?>
实例2 处理汉字
作为一种全球应用的协议,wap选择了unicode 2.0作为其标准字符集编码,能够同时处理英、中、日、法等多种文字。但是开发者日常处理的汉字是gb2312编码,不同的内码标准必定不能通用,因此,如果不在两种编码之间通过码制的转换,就会出现汉字乱码的现象。目前的大多数wap手机(nokia7110、爱立信r320s等等)都使用utf-8(即unicode)来编码的。如果直接在wml使用中文字符(gb2312编码),将会产生乱码,导致手机用户无法识别,因此在输出中文之前,必须使用程序或函数(关于此类的php函数库,网络上已有非常多技术上成熟的产品可以下载)对中文进行unicode的编码。而在少数支持gb2312编码的手机或wap终端设备中,开发者只需在程序中定义文档的内码类型后,即可直接正确显示汉字,看一个实例:
< ?php
header("content-type: text/vnd.wap.wml; charset=gb2312"); //定义字符的编码为gb2312
echo ("");
echo ("你好");
echo ("");
?>
在程序的“header”语句中,定义了文字的编码为gb2312,如果用户的手机支持gb2312编码,将会显示“你好”的字样。
作为未来网络通讯的主导,wap程序的开发已日趋热门。相信通过本文的阅读,能使开发者对使用php进行wap开发有一个初步的印象,希望广大读者能在本文的基础上,参考wml语言,开发出更加强大的wap应用程序。