资讯专栏INFORMATION COLUMN

PHP判断是手机移动端访问还是PC端访问的函数

only_do / 1335人阅读

摘要:最近在开发项目的时候,分别开发了端和手机端,需要实现,用手机访问端域名的时候,自动判断跳转到移动端,用电脑访问域名手机网站的时候,自动跳转到端网站,于是有了下面这个判断函数移动端判断如果有则一定是移动设备如果信息含有则一定是移动设备找不到为

最近在开发项目的时候,分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端网站,于是有了下面这个判断函数:

/**
  * 移动端判断
  */

function isMobile()
{ 
    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    if (isset ($_SERVER["HTTP_X_WAP_PROFILE"]))
    {
        return true;
    } 
    // 如果via信息含有wap则一定是移动设备
    if (isset ($_SERVER["HTTP_VIA"]))
    { 
        // 找不到为flase,否则为true
        return stristr($_SERVER["HTTP_VIA"], "wap") ? true : false;
    } 
    // 脑残法,判断手机发送的客户端标志,兼容性有待提高
    if (isset ($_SERVER["HTTP_USER_AGENT"]))
    {
        $clientkeywords = array ("nokia",
            "sony",
            "ericsson",
            "mot",
            "samsung",
            "htc",
            "sgh",
            "lg",
            "sharp",
            "sie-",
            "philips",
            "panasonic",
            "alcatel",
            "lenovo",
            "iphone",
            "ipod",
            "blackberry",
            "meizu",
            "android",
            "netfront",
            "symbian",
            "ucweb",
            "windowsce",
            "palm",
            "operamini",
            "operamobi",
            "openwave",
            "nexusone",
            "cldc",
            "midp",
            "wap",
            "mobile"
            ); 
        // 从HTTP_USER_AGENT中查找手机浏览器的关键字
        if (preg_match("/(" . implode("|", $clientkeywords) . ")/i", strtolower($_SERVER["HTTP_USER_AGENT"])))
        {
            return true;
        } 
    } 
    // 协议法,因为有可能不准确,放到最后判断
    if (isset ($_SERVER["HTTP_ACCEPT"]))
    { 
        // 如果只支持wml并且不支持html那一定是移动设备
        // 如果支持wml和html但是wml在html之前则是移动设备
        if ((strpos($_SERVER["HTTP_ACCEPT"], "vnd.wap.wml") !== false) && (strpos($_SERVER["HTTP_ACCEPT"], "text/html") === false || (strpos($_SERVER["HTTP_ACCEPT"], "vnd.wap.wml") < strpos($_SERVER["HTTP_ACCEPT"], "text/html"))))
        {
            return true;
        } 
    } 
    return false;
} 

查看原文>> 曼巴童鞋 - 博客 - PHP判断是手机移动端访问还是PC端访问的函数

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26213.html

相关文章

  • h5项目各种小问题解决方案

    摘要:判断系统版本号获取具体的系统版本号微信输入法键盘弹起页面无法还原判断系统防止在多个间切换时做过多操作微信分享至朋友圈成功后不回调问题微信分享至朋友圈后回调的方法内若使用,需配置为同步,否则会出现不回调的情况。 持续更新 MP3 不允许启动AudioContext The AudioContext was not allowed to start. It must be resumed...

    kbyyd24 评论0 收藏0
  • h5项目各种小问题解决方案

    摘要:判断系统版本号获取具体的系统版本号微信输入法键盘弹起页面无法还原判断系统防止在多个间切换时做过多操作微信分享至朋友圈成功后不回调问题微信分享至朋友圈后回调的方法内若使用,需配置为同步,否则会出现不回调的情况。 持续更新 MP3 不允许启动AudioContext The AudioContext was not allowed to start. It must be resumed...

    netScorpion 评论0 收藏0
  • h5项目各种小问题解决方案

    摘要:判断系统版本号获取具体的系统版本号微信输入法键盘弹起页面无法还原判断系统防止在多个间切换时做过多操作微信分享至朋友圈成功后不回调问题微信分享至朋友圈后回调的方法内若使用,需配置为同步,否则会出现不回调的情况。 持续更新 MP3 不允许启动AudioContext The AudioContext was not allowed to start. It must be resumed...

    Achilles 评论0 收藏0
  • 多屏互动——H5 中级进阶

    摘要:手机屏幕朝上,水平静止放置,轴重力加速度为,为。当手机水平放置,拨动手机,使其慢慢旋转,重力加速度的数据并没有变化。四元数的基本数学方程为其中表示旋转角度,表示旋转轴。四元数表示一个完整的旋转。 前言 随着智能硬件的普及,手机,平板,PC甚至路边的电子广告牌,现代浏览器已经无处不在。在浏览器里编织出我们自己的一片天地已经轻车熟路,但是这还不够,H5赋予了浏览器太多的新特性,等待我们去使...

    wdzgege 评论0 收藏0

发表评论

0条评论

only_do

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<