php判断是否是移动设备

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;
        }
        // 脑残法,判断手机发送的客户端标志,兼容性有待提高。其中‘MicroMessenger‘是电脑微信
        if (isset($_SERVER[‘HTTP_USER_AGENT‘])) {
            $clientkeywords = [
                ‘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‘,
                ‘MicroMessenger‘,
            ];
            // 从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;
    }

原文地址:https://www.cnblogs.com/qiandu/p/8416845.html

时间: 2024-10-15 16:03:50

php判断是否是移动设备的相关文章

js判断设备类型是移动设备还是PC设备

时下,许多web网站都有自己的手机建站,当用移动设备浏览网站的时候,我们希望能跳转到手机网址上,下面是一套并不是很完善的代码,高手可继续完善. 代码贴出: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js判断设备类型是移动设备还是PC设备</title> <script type="t

判断是否是移动设备登录

/// <summary> /// 判断是否是移动设备登录 /// </summary> /// <returns></returns> public static bool IsMobileDevice() { string[] mobileAgents = { "iphone", "android", "phone", "mobile", "wap", &

JS判断是否是移动设备进行http链接重定向

1.问题: 用户使用手机移动设备访问127.0.0.1/yemian,自动识别到手机端并且跳转至127.0.0.1/m/yemian 2.小二,上代码: //判断是否是移动设备 var ua = navigator.userAgent; var UA = { Android:function () { //安卓 return ua.match(/Android/i)?true:false; }, BlackBerry:function() { //黑莓 return ua.match(/Blac

判断iPhone还是iPad设备

1. 用[UIDevice currentDevice].model,这个返回的是一个NSString,你可以做如下判断就能知道设备是iPad还是iPhone. if ([[UIDevice currentDevice].model rangeOfString:@"iPad"].location != NSNotFound) {     NSLog(@"This is an iPad!"); } 2. 用UI_USER_INTERFACE_IDIOM()方法,这是系

各种语言判断是否是手机设备

这个网址是各种语言的判断是否是手机设备 http://detectmobilebrowsers.com/ 举例:C#判断是否是 protected void Page_Load(object sender, EventArgs e) { string[] mobileAgents = { "iphone", "ipad", "midp", "ucweb", "rv:1.2.3.4", "andro

Android判断当前的android设备是否处于联网状态

首先,要想获得当前android设备是否处于联网状态,那么android本身给我们提供了一个服务 private ConnectivityManager connectivityManager;//用于判断是否有网络 connectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);//获取当前网络的连接服务 NetworkInfo info = con

判断PC或mobile设备

js 限制: <script type="text/javascript"> function uaredirect(f){try{if(document.getElementById("bdmark")!=null){return}var b=false;if(arguments[1]){var e=window.location.host;var a=window.location.href;if(isSubdomain(arguments[1],e

JQ实现判断iPhone、Android设备

最近做了一版微信宣传页,通过JQ来判断设备,并进行下载 微信内置浏览器对下载链接进行了屏蔽,所以先进行判断,如果是微信内置浏览器,则跳转应用宝链接,如果不是,则判断是iPhone/Adroid/PC 并进行跳转 代码如下: function downloadApp(){ var u = navigator.userAgent; var ua = navigator.userAgent.toLowerCase(); var isAndroid = u.indexOf('Android') > -1

js判断用户的浏览器设备是移动端还是pc端

最近做的一个网站页面中需要根据用户的访问设备的不同来显示不同的页面样式,主要是判断移动设备还是电脑浏览器访问的. 下面给出js判断处理代码,以作参考. <script type="text/javascript"> function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "i