php服务器如何处理数据 php的服务器( 八 )


Browser)对某一网站以无线方式发送WAP服务请求 。该请求先由WAP网关截获,对信息内容进行编码压缩,以减少网络数据流量,同时根据需要将WAP协议转换成HTTP协议,然后将处理后的请求转送到相应WAP服务器 。在WAP服务器端 , 根据页面扩展名等性质,被请求的页面直接或由服务器端脚本解释后输出 , 再经网关传回用户 。
从上述WAP应用流程可以看到,生成动态WAP页面与动态产生Web网页的过程非常类似 。但是由于WAP应用使用的WML语言来源于语法严格的XML,因此要求输出的格式必须按WAP网页的规范输出 。同时 , 由于WAP协议的应用范围、移动客户端的软硬件水平等特殊性,对每次输出的页面的大小、图像的格式及容量都有一定限制 。下面我们以PHP脚本语言为例,看看如何动态输出WAP页面 。
一、设置PHP WEB服务器
首先你的 Web服务器要安装好PHP,即能处理PHP脚本程序 。其次,为使PHP WEB服务器能同时识别和处理PHP、WML、WBMP等文件,Web
服务器的MIME表需添加以下的几种文件类型 。
text/vnd.wap.wml .wml
image/vnd.wap.wbmp .wbmp
application/vnd.wap.wmlc .wmlc
text/vnd.wap.wmls.wmls
application/vnd.wap.wmlsc .wmlsc
二、用PHP输出简单动态WAP页面
下面有一个最简单的PHP生成WAP页面的例子 。注意由于需要PHP解释器来解释该程序,并输出WAP页面 , 因此所有类似程序应以.php为扩展名 。
?php
header(″Content-type: text/vnd.wap.wml″);
echo (″wml card p″);
echo date( ″l dS of F Y h:i:s A″ );
echo (″/p/card/wml″);
?
该例子在WAP手机模拟器中可以浏览,输出当前日期时间,而在普通的浏览器中无法识别 , 甚至会被认为是错误下载 。这是因为在程序开头就声明了该输出文档为WML类型,该类型只有WAP设备能够识别并解释 。值得注意的是,我们常见的HTML语言对规范性要求不严 , 大多数浏览器能“容忍”其中相当多的编写错误,而WML规范相当严格,一点失误都可能导致无法输出所需页面 。
一旦我们知道了用PHP脚本输出WAP页面的标准过程,我们就能够使用PHP强大的功能配合以WML语言的交互处理以及WML s
cript的简单脚本,开发出适合我们需要的应用系统了 。
三、用PHP动态生成图像
WAP应用使用一种特殊黑白的图像格式WBMP 。我们可以用一些工具来将已有图像转换成WBMP格式 , 然后在WML文档中使用 。但是在WAP站点上如果能动态地生成所需图像如K线图等,将会有广阔的应用前景 。幸运的是,PHP的GD库(版本1.8以上)已经提供了相应函数 。
?PHP
Header(″Content-type: image/vnd.wap.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);
?
该文件将在WAP模拟器中显示一个黑色矩形框 。注意要使用GD的图像函数库,必须在PHP WEB服务器配置中加载PHP_GD.DLL库文件 。
四、在PHP中处理汉字
WAP作为一种全球应用 , 选择了UNICODE
2.0作为其标准字符集编码,以便能同时处理包括英文、中文、日文、法文等多种文字 。而我们平常处理汉字使用的是GB2312编码,不同的内码标准势必不能通用,因此如果不在两种编码之间通过码表进行转换,就会出现汉字乱码现象 。现在已经有较成熟的GB-2312与UNICODE编码转换的程序和函数,并在ASP、PHP、JSP等系统中使用,我们可以在一些技术站点上找到它们 。
目前的大多数WAP手机(Nokia7110、爱立信

推荐阅读