PHP判断是否为手机端或PC端

人来到这世界后,命运注定了他必须要拼搏,奋斗,坚持,勇敢地走下去,走出属于自己的道路,没有人能不劳而获。

PHP判断用户访问网站的设备是手机端或PC端有很多种的方法,以给用户展示不同的内容。今天就写写几个平时收集过来的函数,大家自己测试吧。

PHP通过用户浏览器的User-Agent来判断访问设备的类型

示例代码:

<?php
function is_mobile() {
    if (empty($_SERVER['HTTP_USER_AGENT'])) {
            $is_mobile = false;
        } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false 
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
        $is_mobile = true;
    }else{
        $is_mobile = false;
    }
    return $is_mobile;
}
?>

调用方法:

<?php
if(is_mobile){
    //手机端代码
}else{
    //PC端代码
}
?>

以上自定义函数是PHP通过获取用户浏览器User-Agent方法来判断是手机端还是PC端的,但精确度不是很高。比如有些手机的浏览器可以改变浏览器的标识来绕过上面的判断逻辑。

PHP判断用户设备,PHP判断设备类型,PHP判断是否为手机端,php判断是否为PC端

$_SERVER['HTTP_X_WAP_PROFILE']

手机端的UA信息收集可以利用X-WAP-PROFILE,它里面包含屏幕的大小,屏幕显示字符个数,厂家、版本、浏览器型号等。

如果是移动设备,肯定会有‘HTTP_X_WAP_PROFILE’这个标识的,所以我们可以利用PHP来判断是否存在$_SERVER['HTTP_X_WAP_PROFILE']来确认用户的访问设备类型

示例代码

<?php
if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
    return true;
}
?>

$_SERVER['HTTP_VIA']

HTTP_VIA:列出从客户端到服务器端或者相反方向的响应经过了哪些代理服务器,他们用什么协议发送的请求。当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面添加 Via 头部,并填上自己的相关信息,当下一个代理服务器 收到第一个代理服务器的请求时,会在自己发出的请求里面复制前一个代理服务器的请求的Via头部,并把自己的相关信息加到后面。以此类推,当终端服务器收到最后一个代理服务器的请求时,检查 Via 头部。就知道该请求所经过的路由。

我们可以利用获取HTTP_VIA方式来并检查里面是否含有“wap”字段的形式来判断是否为手机端

代码示例:

<?php
if(isset($_SERVER['HTTP_VIA'])){
    return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
}
?>

注意:如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息

扩展:

如果你想让判断的精度更高一些,可以把以上的实例代码组合起来使用

比如:

<?php
function ismobile(){
    if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
        return true;
    }
    if(isset($_SERVER['HTTP_VIA'])){
        if($_SERVER['HTTP_VIA'], 'wap')){
            return true;
        }
    }
    //is_mobile() 为第一个示例的函数
    // 
    if(is_mobile()){
        return true;
    }
    return false;
}
?>

调用方式

<?php
if(ismobile()){
    //手机端
}else{
    //PC端
}
?>

到此这篇关于PHP判断是否为手机端或PC端就介绍到这了。只要我们曾经努力过,不管结果如何,都不会让自己后悔。更多相关PHP判断是否为手机端或PC端内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
PHP性能优化案例分享

PHP实现短信验证码的发送次数限制

PHP中的异常处理机制深入讲解

PHP常见七种算法合集代码实例

PHP微信扫描二维码关注公众号后自动登录第三方网站