教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php判断客户端是手机设备然后跳转到手机站

php判断客户端是手机设备然后跳转到手机站

发布时间:2016-10-13   编辑:jiaochengji.com
教程集为您提供php判断客户端是手机设备然后跳转到手机站等资源,欢迎您收藏本站,我们将为您提供最新的php判断客户端是手机设备然后跳转到手机站资源
现在手机移动互联网已经超过PC了,很多网站都做了手机网站,包括我的小站。这里有一个问题,如果客户直接拿手机打开我的主域名,我该如何做出判断然后跳转到手机网站呢?以下两个函数就可以做到这一点。

以下是我正在用的函数,不过好像在iphone上有点问题,如果你有更好的解决方案,可以留言发给我,不尽感激。

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy8501')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy8501>// 如果是手机设置,跳转到手机页面
if (isMobile ()) {
    Header ( "Location: mobile.php" );
    exit ();
}


/**
 * 判断用户是否为移动用户,可以判断iphone,Android,Windows Mobile和一般的手机系统
 */
function isMobile(){
    // 判断 iphone 和 ipad,不跳转
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    if(strpos($userAgent, "iPhone") ||
        strpos($userAgent, "iPad") ||
        strpos($userAgent, "iPod") ||
        strpos($userAgent, "iOS")){
        return false;
    }

    // 如果有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;
}</td></tr></table>

您可能感兴趣的文章:
php判断客户端是手机设备然后跳转到手机站
js实现wap浏览自动跳转到wap页面
php判断用户是否手机访问
php判断是否wap手机客户端的方法详解
php如何判断是手机还是电脑
php判断是否为移动设备
php判断是android还是ios还是wp的访问网站
手机爱奇艺缓存失败怎么办?手机爱奇艺无法缓存解决办法
PHP判断客户端为PC还是手机
学完PHP能做什么?

[关闭]
~ ~