我们大家都知道php的强大之处,最近看到了关于php web服务器的相关知识,下面我们就这个问题和大家一起讨论一下。wap(无线通讯协议)是在数字移动电话、个人手持设备(pda等)及计算机之间进行通讯的开放性全球标准。由于静态的wap页面在很多方面不能满足用户个性化的服务请求,因此通过wap服务器端语言产生动态的wml页面,具有很广泛的应用价值和很高的商业价值。
从上述WAP应用流程可以看到,生成动态WAP页面与动态产生Web网页的过程非常类似。但是由于WAP应用使用的WML语言来源于语法严格的XML,因此要求输出的格式必须按WAP网页的规范输出。同时,由于WAP协议的应用范围、移动客户端的软硬件水平等特殊性,对每次输出的页面的大小、图像的格式及容量都有一定限制。下面我们以PHP脚本语言为例,看看如何动态输出WAP页面。
一、设置PHP WEB服务器
首先你的 Web服务器要安装好PHP,即能处理PHP脚本程序。其次,为使PHP WEB服务器能同时识别和处理PHP、WML、WBMP等文件,Web 服务器的MIME表需添加以下的几种文件类型。
立即学习“PHP免费学习笔记(深入)”;
<OL class=dp-xml><LI class=alt><SPAN><SPAN>text/vnd.wap.wml .wml </SPAN></SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>image/vnd.wap.wbmp .wbmp </SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>application/vnd.wap.wmlc .wmlc </SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>text/vnd.wap.wmls.wmls </SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>application/vnd.wap.wmlsc .wmlsc </SPAN></LI></OL>
二、用PHP输出简单动态WAP页面
下面有一个最简单的PHP生成WAP页面的例子。注意由于需要PHP解释器来解释该程序,并输出WAP页面,因此所有类似程序应以.php为扩展名。
<OL class=dp-xml><LI class=alt><SPAN><STRONG><FONT color=#006699><SPAN class=tag><?</SPAN><SPAN class=tag-name>php</SPAN></FONT></STRONG><SPAN> </SPAN></SPAN><LI class=""><SPAN>header(″Content-type: text/vnd.wap.wml″); </SPAN><LI class=alt><SPAN>echo (″</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>wml</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN> </SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>card</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN> </SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>p</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>″); </SPAN></SPAN><LI class=""><SPAN>echo date( ″l dS of F Y h:i:s A″ ); </SPAN><LI class=alt><SPAN>echo (″</SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>p</SPAN><SPAN class=tag>></SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>card</SPAN><SPAN class=tag>></SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>wml</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>″); </SPAN></SPAN><LI class=""><SPAN></SPAN><SPAN class=tag><STRONG><FONT color=#006699>?></FONT></STRONG></SPAN><SPAN> </SPAN></SPAN></LI></OL>
该例子在WAP手机模拟器中可以浏览,输出当前日期时间,而在普通的浏览器中无法识别,甚至会被认为是错误下载。这是因为在程序开头就声明了该输出文档为WML类型,该类型只有WAP设备能够识别并解释。值得注意的是,我们常见的HTML语言对规范性要求不严,大多数浏览器能“容忍”其中相当多的编写错误,而WML规范相当严格,一点失误都可能导致无法输出所需页面。
一旦我们知道了用PHP脚本输出WAP页面的标准过程,我们就能够使用PHP强大的功能配合以WML语言的交互处理以及WML s cript的简单脚本,开发出适合我们需要的应用系统了。
三、用PHP动态生成图像
WAP应用使用一种特殊黑白的图像格式WBMP。我们可以用一些工具来将已有图像转换成WBMP格式,然后在WML文档中使用。但是在WAP站点上如果能动态地生成所需图像如K线图等,将会有广阔的应用前景。幸运的是,PHP的GD库(版本1.8以上)已经提供了相应函数。
<OL class=dp-xml><LI class=alt><SPAN><STRONG><FONT color=#006699><SPAN class=tag><?</SPAN><SPAN class=tag-name>PHP</SPAN></FONT></STRONG><SPAN> </SPAN></SPAN><LI class=""><SPAN>Header(″Content-type: image/vnd.wap.wbmp″); </SPAN><LI class=alt><SPAN></SPAN><SPAN class=attribute><FONT color=#ff0000>Sim</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>ImageCreate</FONT></SPAN><SPAN>(50, 50); </SPAN></SPAN><LI class=""><SPAN></SPAN><SPAN class=attribute><FONT color=#ff0000>Swhite</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>ImageColorAllocate</FONT></SPAN><SPAN>(Sim,255,255,255); </SPAN></SPAN><LI class=alt><SPAN></SPAN><SPAN class=attribute><FONT color=#ff0000>Sblack</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>ImageColorAllocate</FONT></SPAN><SPAN>(Sim,0,0,0); </SPAN></SPAN><LI class=""><SPAN>ImageRectangle(Sim, 5, 5, 20, 20, Sblack); </SPAN><LI class=alt><SPAN>ImageWBMP(Sim); ImageDestroy(Sim); </SPAN><LI class=""><SPAN></SPAN><SPAN class=tag><STRONG><FONT color=#006699>?></FONT></STRONG></SPAN><SPAN> </SPAN></SPAN></LI></OL>
该文件将在WAP模拟器中显示一个黑色矩形框。注意要使用GD的图像函数库,必须在PHP WEB服务器配置中加载PHP_GD.DLL库文件。
四、在PHP中处理汉字
WAP作为一种全球应用,选择了UNICODE 2.0作为其标准字符集编码,以便能同时处理包括英文、中文、日文、法文等多种文字。而我们平常处理汉字使用的是GB2312编码,不同的内码标准势必不能通用,因此如果不在两种编码之间通过码表进行转换,就会出现汉字乱码现象。现在已经有较成熟的GB-2312与UNICODE编码转换的程序和函数,并在ASP、PHP、JSP等系统中使用,我们可以在一些技术站点上找到它们。
目前的大多数WAP手机(Nokia7110、爱立信 R320S等等)都是使用UTF-8编码的,也就是采用UNICODE来编码。这样,如果我们直接在WML使用中文字符(GB2312编码),将会产生乱码,手机用户无法识别,所以我们在输出中文之前,要使用程序或函数对中文进行UNICODE的编码。而在少数支持GB2312编码的手机或WAP终端设备中,我们可以在程序中定义好文档的内码类型后即可直接正确显示汉字,例如:
<OL class=dp-xml><LI class=alt><SPAN><SPAN class=tag><?</SPAN><SPAN class=tag-name>php</SPAN><SPAN> </SPAN></SPAN><LI class=""><SPAN>header(″Content-type: text/vnd.wap.wml; </SPAN><SPAN class=attribute>charset</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>gb2312</SPAN><SPAN>″); </SPAN></SPAN><LI class=alt><SPAN>echo (″</SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>wml</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>card</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>p</SPAN><SPAN class=tag>></SPAN><SPAN>″); </SPAN></SPAN><LI class=""><SPAN>echo (″中文测试″); </SPAN><LI class=alt><SPAN>echo (″</SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>p</SPAN><SPAN class=tag>></SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>card</SPAN><SPAN class=tag>></SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>wml</SPAN><SPAN class=tag>></SPAN><SPAN>″); </SPAN></SPAN><LI class=""><SPAN></SPAN><SPAN class=tag>?></SPAN><SPAN> </SPAN></SPAN></LI></OL>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号