首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>php>php应用>正文

用PHP编程语言开发动态WAP页面

http://www.oklinux.cn  2005-03-30  来源: ChinaITLab 收集整理   会员收藏  游客收藏  【 】 

  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应用程序。

上一篇:用PHP实现GB2312和Unicode间的编码转换   下一篇:PHP程序员一般都忽略了的几点精华


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·用PHP实现GB2312和Unicode间的编码转换
·用PHP实现XML备份MySQL数据库
·PHP5学习笔记第一节面向对象编程
·PHP也可以当成Shell Script使用
·如何使用动态共享对象的模式来安装PHP
·Windows服务器安装多套PHP的解决方案
·实例分析:实现一个PHP WAV接合方案
·举例说明:在PHP中运行XPath查询
·教您如何应用PHP开发出安全的应用程序
·分析PHP比ASP优秀的七个理由
·内嵌式的语言PHP 应用技巧七则
·PHP5中使用Web服务访问J2EE应用程序(2)
·PHP5中使用Web服务访问J2EE应用程序(1)
·PHP应用程序的性能优化及简要的介绍
·一步一步教你PHPMyAdmin安装图解教程
·PHP应用分页显示制作详细讲解
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux系统上把PHP编译进Apache静态内核
·关于PHP逗点连接符与引号问题
·php有关于正则表达式的详细说明
·通过gd库为图片添加透明水印
·第二节--PHP5 的对象模型
·用php对文件上传处理过程的进一步说明
·PHP分页显示制作详细讲解
·Linux主机重编译PHP支持GD库
·php+ImageMagick+imagick API 配置指南
·php抓取和分析
·第一节--面向对象编程
·php的预定义变量
  阅读排行
·Linux系统上把PHP编译进Apache静态内核
·WASP使用方法简介(3)
·Linux编程之提升PHP执行速度全攻略分析
·MySQL (C API)VC实例及代码下载 (1)
·Windows服务器安装多套PHP的解决方案
·Linux主机重编译PHP支持GD库
·FleaPHP -- 中国人自己的PHP开发框架
·如何使用动态共享对象的模式来安装PHP
·PHP应用分页显示制作详细讲解
·用php或js获取图片大小,高宽尺寸
·PHP也可以当成Shell Script使用
·为什么PHP令人不爽(对于大型系统)
·教您如何应用PHP开发出安全的应用程序
·winbinder开发php桌面程序
·用php对文件上传处理过程的进一步说明
网摘收藏: