折雨的天空

博客介绍:本博客当前共有文章【968】篇,总阅读量【5,158,760】次,第一篇博客发表于【2011年04月06日 10时34分】,距今已【4978】天,感谢您的使用!

您的位置:折雨的天空 >php开发> PHP判断手机浏览器支持的协议版本

PHP判断手机浏览器支持的协议版本

这个转载的目的非常明确,为了我的优乐笑话的手机版做准备的。
之前一直是手工判定,现在居然找到这样的代码,肯定是要收藏备份和使用的了。

原文如下:

转载出处:http://www.phpcxz.com/archives/view_383.html
做个手机站,从表象上来说,真的很容易的噢。一个页面就能包罗万象。可是,现在站长要告诉你的是,那都是表象。其实,我们都是伤不起的。
比如,我今天做的一个应用,运营部有新需求,要求根据手机用户平台或电脑浏览器所能支持的版本返回不同的页面。也就是说,现在我的程序里面有两套模板。一套模板是专门给不支持wap2.0的用户访问的,一套是给支持wap2.0手机访问的。现在问题就来了,我怎样才能判断用户客户端是什么平台呢?比如:现在的QQ浏览器、UC浏览器、Opera浏览器,还有FireFox、IE等浏览器。比如,IE浏览器与FireFox浏览器是不支持wap 简单版本的。其他浏览器对wap 1.x版本的支持又各不相同。纠结从此开始了。恶梦也随之而来。
我告诉自己,我是小强,不死的化身。这个小问题就能搞死我,哼。可能吗?不可能吗?
新浪,网易,QQ等手机站都能做得来,我为什么做不来呢?咱不信自己属于孬的。
为了了解这些浏览器的特性或HTTP协议,百度了一下,谷歌了一下。还不错,有一篇贴子介绍HTTP协议的。仔细看了下,觉得讲得非常详细,其中谈到了一个特性,我刚好可以利用来判断用户是否支持wap 2.0。简直太好了。[HTTP协议的那篇文章已经转载到PHP初学者网站]
我通过以下函数获取并判断了用户浏览器是否支持wap2.0.希望正在开发WAP站或准备学习WAP开发的你,一定要看。

/**
* 判断是否支持wap 2.0版本的wap页面,借此判断输出怎样的页面给用户。
*/
function is_support_wap()
{
$headers = array();
foreach ($_SERVER as $key => $value)
{
if (substr($key, 0, 5) == “HTTP_”)
{
$key=str_replace(” “, “-”, ucwords(strtolower(str_replace(“_”, ” “, substr($key,5)))));
$headers[$key]=$value;
}
else
{
$headers[$key]=$value;
}
}
$accept = $headers['Accept'];
$accept_arr = explode(‘,’, $accept);
foreach ($accept_arr as $key=>$aa)
{
$accept_arr[$key] = trim($aa);
}
// 先判断是否支持标准版。
if (in_array(‘application/xhtml+xml’, $accept_arr))
{
return 1;
}
// 再判断是否支持简单版。
elseif (in_array(‘text/vnd.wap.wml’, $accept_arr))
{
return 2;
}
// 否则判断手机用户支持标准版。
else
{
return 3;
}
}

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

转载请注明本文标题和链接:《PHP判断手机浏览器支持的协议版本

奖励一下

取消

分享不易,烦请有多多打赏,如您也困难,点击右边关闭即可!

扫码支持
扫码打赏,5元,10元,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

-秒后自动关闭,如已打赏,或者不愿打赏,请点击右上角关闭图标。

发表评论

路人甲 表情
看不清楚?点图切换

网友评论(1)

You've really cuapterd all the essentials in this subject area, haven't you?
Alejandro 13年前 (2012-03-17) 回复