最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

PHP作wap开发时遇到的问题

时间:2014-06-09 16:40来源: 作者: 点击:
1.文件格式 首先要碰到的问题肯定是文件格式,在作web开发时,大家都是用的html或xhtml,到了wap开发时,就得用wml了.什么是wml?大家可以去查更具体的资料,我这里只是略微的提到.在我看来wml类似于

1.文件格式

首先要碰到的问题肯定是文件格式,在作web开发时,大家都是用的html或xhtml,到了wap开发时,就得用wml了.什么是wml?大家可以去查更具体的资料,我这里只是略微的提到.在我看来wml类似于xml,有非常严格的格式,在作wap页面时,都得用wml来作为显示.

wml的语法非常简单,在用php作动态输出时,一定要发送一个头信息,标明本页面是wml,而不是别的什么*ml.

  1. header("Content-type: text/vnd.wap.wml; charset="gb2312""); 

这里用的字符集是gb2312,在移动的平台上是没有任何问题的,但在联通的平台上就不行了,一定得用utf-8,为了更通用,还是用utf-8更安全.即

  1. header("Content-type: text/vnd.wap.wml; charset="utf-8""); 

2.编码

上面说了字符集都应采用utf-8,这是一种容纳了多国语言的字符集,一个汉字是占双字节,utf-8占了4个字节,因此其容纳的信息量更大.在手机上编写的汉字,在将页面内码转成utf-8后,以后再打开就可能是一堆乱码.因此大家在作注释时,尽可能的用英文注释,省得以后看不懂.像editplus,ultraedit等工具都可以转文件内码.

3.适配

世界各大手机厂商真是有病,开发出的手机千奇百怪,可以支持的格式也是五花八门.比如铃声,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.这虽然是把手机的档次和成本拉开了,但却苦了作手机开发的兄弟们了.因为不可避免的要对手机所能支持的图片,铃声等多媒体信息作出一个匹配,这个匹配的处理,我们一般叫做手机适配.

要作手机适配,我们一般得有如下资料.

1)一份具体的手机适配资料表,里面应具体的说明手机所能支持的铃声,图片格式,还得有手机型号等信息

2)要正确的获取手机的UA,什么是UA,就是(user agent),实际上就是用户的手机信息.

有了上面的东东我们才能做出适配.以下给出一个我写的在wap开发中用到的类,可以用来取手机号,手机UA.

  1. /** 
  2. * 类名: mobile 
  3. * 描述: 手机信息类 
  4. * 其他: 偶然 编写 
  5. */ 
  6. class mobile 
  7. /** 
  8. * 函数名称: getPhoneNumber 
  9. * 函数功能: 取手机号 
  10. * 输入参数: none 
  11. * 函数返回值: 成功返回号码,失败返回false 
  12. * 其它说明: 说明 
  13. */ 
  14. function getPhoneNumber() 
  15. if (isset($_SERVER['HTTP_X_NETWORK_INFO'])) 
  16. $str1 = $_SERVER['HTTP_X_NETWORK_INFO']; 
  17. $getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1); 
  18. Return $getstr1
  19. elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) 
  20. $getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID']; 
  21. Return $getstr2
  22. elseif (isset($_SERVER['HTTP_X_UP_SUBNO'])) 
  23. $str3 = $_SERVER['HTTP_X_UP_SUBNO']; 
  24. $getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3); 
  25. Return $getstr3
  26. elseif (isset($_SERVER['DEVICEID'])) 
  27. Return $_SERVER['DEVICEID']; 
  28. else 
  29. Return false; 
  30.  
  31. /** 
  32. * 函数名称: getHttpHeader 
  33. * 函数功能: 取头信息 

(责任编辑:admin)
------分隔线----------------------------
栏目列表
推荐内容