欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【php作wap开发时遇到的问题】,下面是详细的分享!
php作wap开发时遇到的问题
1.文件格式
首先要遇到的问题肯定是文件格式,在作 web开发时,大家都是用的html或xhtml,到了wap开发时,就得用wml了.什么是wml?大家可以去查更详细的资料,我这里只是略微的提到. 在我看来wml类似于xml,有非常严格的格式,在作wap页面时,都得用wml来作为显示.
wml的语法非常简单,在用php作动态输出时,一定要发送一个头信息,标明本页面是wml,而不是别的什么*ml.
header("Content-type: text/vnd.wap.wml; charset="gb2312"");
?>
这里用的字符集是gb2312,在移动的平台上是没有任何问题的,但在联通的平台上就不行了,一定得用utf-8,为了更通用,还是用utf-8更安全.即
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.
class mobile
{
function getPhoneNumber()
{
if (isset($_SERVER['HTTP_X_NETWORK_INFO']))
{
$str1=$_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1=preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
Return $getstr1;
}
elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
{
$getstr2=$_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
Return $getstr2;
}
elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
{
$str3=$_SERVER['HTTP_X_UP_SUBNO'];
$getstr3=preg_replace('/(.*)(11[d])(.*)/i','',$str3);
Return $getstr3;
}
elseif (isset($_SERVER['DEVICEID']))
{
Return $_SERVER['DEVICEID'];
}
else
{
Return false;
}
}
function getHttpHeader()
{
$str=''
foreach ($_SERVER as $key=>$val)
{
$gstr=str_replace("&","&",$val);
$str.="$key -> ".$gstr." ";
}
Return $str;
}
function getUA()
{
if (isset($_SERVER['HTTP_USER_AGENT']))
{
Return $_SERVER['HTTP_USER_AGENT'];
}
else
{
Return false;
}
}
function getPhoneType()
{
$ua=$this->getUA();
if($ua!=false)
{
$str=explode(' ',$ua);
Return $str[0];
}
else
{
Return false;
}
}
function isOpera()
{
$uainfo=$this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo))
{
Return true;
}
else
{
Return false;
}
}
function isM3gate()
{
$uainfo=$this->getUA();
if (preg_match('/M3Gate/i',$uainfo))
{
Return true;
}
else
{
Return false;
}
}
function getHttpAccept()
{
if (isset($_SERVER['HTTP_ACCEPT']))
{
Return $_SERVER['HTTP_ACCEPT'];
}
else
{
Return false;
}
}
function getIP()
{
$ip=getenv('REMOTE_ADDR');
$ip_=getenv('HTTP_X_FORWARDED_FOR');
if (($ip_ !="") && ($ip_ !="unknown"))
{
$ip=$ip_;
}
return $ip;
}
}
?>
4.页面设计
作wap开发时,wap页面是非常简单的.比html来说是简单到不能再简单了.在wap1.0里是没有表格之类的乱七八糟的东西的.所有的标签都是写在一个叫card的标签之内.可以用来分段.所以做页面的算是轻松了.
5.模拟器
作wap 开发免不了要用各式各样的模拟器来测试,比较好的有m3gate,openwave,opera,还有一个叫winwap的,大家最好别用他来作测试,他的兼容性太好了,即使页面有错误都能给忽略掉.测试时跟用浏览器测试web页面一样,输入网址就可以了.没有比这更容易的事了.
6.注意事项
1)空格,特别是在定义DTD时,
echo "";
?>
里面如果哪个地方少个空格,就有你受的了.以前写的时候用了页面重排之后,把一些空格给干掉了,整整找了两天才找出错误来,大家千万别步我的后尘.
2)标签,如果标签不成对,会提示错误,大家注意就是了,很容易修正.
以上所分享的是关于php作wap开发时遇到的问题,下面是编辑为你推荐的有价值的用户互动:
相关问题:用php开发wap网站时遇到的问题
答:自己服务器的话在网站属性的mime类型中添加 wml text/vnd.wap.wml 空间要能添加mime类型 wml text/vnd.wap.wml wap使用端口要开放(一般应该都开的吧?) PS.这次去新开中国频道的天珠套餐发现能修改虚拟主机的mime类型,但我没放wap网站上去试,不过... >>详细
相关问题:php+html开发wap网站的问题。
答:1.字体太小是属于浏览器设置问题,不是网站的问题。 2.登录后要进行跳转,不要用用返回或后退。另外,你这个检测登录的方法是利用甜饼的方式还是利用seeson的方式,有可能是手机不支持甜饼,尝试在手机上把这个功能打开。 >>详细
相关问题:php开发一个wap站,手机浏览器问题
答:哟呵……有人跟我做一样的事……怎么没地址栏呢。安下面的设置键,顶部也会出现地址栏点击就是了,不点的话是网页名称。再就推荐长按屏幕,最后有个查看属性 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
