您的位置主页 > 编程专区 > Php > 用php做wap手机网站

用php做wap手机网站

2009-09-09    文章来源:互联网    浏览次数:1288     分享文章

现在的手机,大部分都可以支持普通的html网站,严格来讲wap网站用的是wml 或是DHTML
    我开发时用的是PHP 生成 的wml代码,其中也偷学了点 discuz里面的代码。
    说说几点我做的过程中遇到并解决的问题吧,供大家参考吧;
    首先是测试,平常我们开WAP的网站,都会提示下载,所以WAP的测试有3种方式:一是用opera浏览器,二是 将以下代码粘贴到一个HTML就可以了。

 
  1. <iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" width="260" height="440" name="frame" src="http://win.uucun.com/frame.jsp"></iframe>

三就是用M3GATE,也是我最常用的测试工具,不过这个工具只能 在windows下面使用。这个工具对WML的要求非常严格。不过这样可以使你的程序在以后的测试中减少很多麻烦。
    用php生成WML的头 和尾

 
  1. function wapheader($title) {
  2.     header("Content-type: text/vnd.wap.wml; charset=gb2312");
  3.     echo "<?xml version=\"1.0\"?>\n".
  4.     "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n".
  5.     "<wml>\n".
  6.     "<head>\n".
  7.     "<meta http-equiv=\"cache-control\" content=\"max-age=180,private\" />\n".
  8.     "</head>\n".
  9.     "<card id=\"discuz_wml\" title=\"$title\">\n";
  10.  
  11. }
  12.  
  13. function wapfooter() 
  14. {
  15.     echo "<p> <a href='./'>返回到首页</a></p>\n".
  16.     "<small>Powered by lzy!</small></p>\n".
  17.     "</card>".
  18.     "</wml>";
  19. }

这个是抄discuz的。 目的就是将网页设置为WML

wml 的格式:

 
  1. <?xml version="1.0"?>
  2. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
  3. <wml>
  4. <card id="discuz_wml" title="标题">
  5. <p>文章类容</p>
  6. </card>
  7. </wml>

wml 要严格遵守有始有终,就是 有<a>就必须有</a>, 我在开发过程中发现,当你用<a>标签的话,如果不加 href=''也会报错 ,也就是说有些必要的属性也必须要加上。即:<a href=''></a>

session方面:
        在手机网站使用session 时候  在最老型手机和最新的m3gate opera9上都不支持接受session的,所以就会造成 m3gate显示第一行 第一列 有致命错误.现在很多WAP社区,3G门户,泡泡吧都没有解决,还有搜狐wap网.
        解决办法:
        在输出session_start前使用 session_cache_limiter("none"); 这就不会下载任何东西到本地,而又能支持session

表单方面:
      要用到表单的时候格式和HTML就完全不一样
      比如做一个搜索的表单:

 
  1. 关键字:<input type="text" name="search" value="" maxlength="15" />
  2.         <anchor title="搜索">搜索<br/>
  3.         <go method="post" href="index.php?act=search">
  4.         <postfield name="username" value="$(search)" />
  5.         </go></anchor>

当接受表单的时候就和php一样了 ,也就是  $_POST['search']。
另外,wap网站 是不支持JAVASCRIPT的,所以平常的JS都不能用,如果想在页面里面做一个跳转怎么办呢
可以这样:

 
  1. <onevent type='ontimer'> <go href='./index.php'/> </onevent> <timer value='50'/><p>内容</p>

未完待续......

文章评论(查看全部)

昵 称 *
电子邮箱 *
网 址      0 + 0 = ?