用php做wap手机网站
现在的手机,大部分都可以支持普通的html网站,严格来讲wap网站用的是wml 或是DHTML
我开发时用的是PHP 生成 的wml代码,其中也偷学了点 discuz里面的代码。
说说几点我做的过程中遇到并解决的问题吧,供大家参考吧;
首先是测试,平常我们开WAP的网站,都会提示下载,所以WAP的测试有3种方式:一是用opera浏览器,二是 将以下代码粘贴到一个HTML就可以了。
- <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的头 和尾
- function wapheader($title) {
- header("Content-type: text/vnd.wap.wml; charset=gb2312");
- echo "<?xml version=\"1.0\"?>\n".
- "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n".
- "<wml>\n".
- "<head>\n".
- "<meta http-equiv=\"cache-control\" content=\"max-age=180,private\" />\n".
- "</head>\n".
- "<card id=\"discuz_wml\" title=\"$title\">\n";
- }
- function wapfooter()
- {
- echo "<p> <a href='./'>返回到首页</a></p>\n".
- "<small>Powered by lzy!</small></p>\n".
- "</card>".
- "</wml>";
- }
这个是抄discuz的。 目的就是将网页设置为WML
wml 的格式:
- <?xml version="1.0"?>
- <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
- <wml>
- <card id="discuz_wml" title="标题">
- <p>文章类容</p>
- </card>
- </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就完全不一样
比如做一个搜索的表单:
- 关键字:<input type="text" name="search" value="" maxlength="15" />
- <anchor title="搜索">搜索<br/>
- <go method="post" href="index.php?act=search">
- <postfield name="username" value="$(search)" />
- </go></anchor>
当接受表单的时候就和php一样了 ,也就是 $_POST['search']。
另外,wap网站 是不支持JAVASCRIPT的,所以平常的JS都不能用,如果想在页面里面做一个跳转怎么办呢
可以这样:
- <onevent type='ontimer'> <go href='./index.php'/> </onevent> <timer value='50'/><p>内容</p>
未完待续......

文章评论(查看全部)