tp5 jquery判断手机端还是电脑端
未知
2021-10-29 17:12:48
0
application--common.php中添加如下代码
//函数作用是判断用户打开的是手机端还是电脑端
 function isMobile(){

    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))

        return true;



    //此条摘自TPM智能切换模板引擎,适合TPM开发

    if (isset ($_SERVER['HTTP_CLIENT']) && 'PhoneClient' == $_SERVER['HTTP_CLIENT'])

        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;

}

在控制器公共文件中base.php添加如下代码

if (\think\Request::instance()->isMobile()) {
        
            if(!session("userid") || !session('mid')){

           //如果跳转不管用就添加上exit();或者使用$this->redirect();(发现这个函数有漏洞,慎用)
                header('location:index/login/phonelog');exit()
            }
        } else {

            
            if(!session("userid") || !session('mid')){

            
                header('location:index/login/index');exit();
            }

        }

<script>
function isMobile() {
    if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)))
     return true;
   else
    return false;
}
var urlMobile='m/index.html';//手机跳转的页面
if(isMobile() !== false)
   window.location.href=urlMobile;

</script>

 function isMobile() {
        var userAgentInfo = navigator.userAgent;
 
        var mobileAgents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad","iPod"];
 
        var mobile_flag = false;
 
        //根据userAgent判断是否是手机
        for (var v = 0; v < mobileAgents.length; v++) {
            if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
                mobile_flag = true;
                break;
            }
        }
         var screen_width = window.screen.width;
         var screen_height = window.screen.height;    
 
         //根据屏幕分辨率判断是否是手机
         if(screen_width < 500 && screen_height < 800){
             mobile_flag = true;
         }
 
         return mobile_flag;
         
    }

相关内容

tp5中MySQL如何获取...
第一种: // 假设$user是从数据库中查询出的用户信息 $us...
2024-05-10 09:02:51
tp5和layui表单提交...
form class=layui-form layui-form-...
2024-04-09 14:45:31
将Html5手机端网站封装...
将Html5手机端网站封装为微信小程序的方法
2024-03-29 11:02:54
tp5 layui登录时失...
使用tp5和layui框架结合的登录页面,在首次登录时不出现验证码...
2024-02-26 09:59:58
tp5设置多套模板或者根据...
tp5设置多套模板或者根据域名设置模板
2024-01-19 14:38:32
单休加班费按照40小时还是...
单休加班费按照40小时还是44小时算
2024-01-18 09:05:04

热门资讯

tp5 jquery判断手机端... application--common.php中添加如下代码 //函数作用是判断用户打开的是手机端还...
Laravel 5.5 .No... 创建了新的laravel项目后, 运行提示:No application encryption ke...
php 打印date函数出现错... 问题描述: 我使用的是phpstudy,在练习时间函数的时候,打印出现在的时间,date(Y-m-d...
生成随机字符唯一标识符guid... /** * @param $length * @return string * 生成随机字符串 */...
layui缩略图 div class=layui-form-item label class=layui-form-l...
php函数substr_rep... php函数substr_replace从某个位置替换或删除或插入字符串
Laravel 引入自定义类库... 强烈建议引入的类 都是含有命名空间的,这样使用起来就不会出现重名的情况。!!当然,没有命名空间也可以...
object json转化为数... //调用api 程序,通知商户订单异常 20200314 public function callt...
Laravel 查看SQL操作... 方法一:临时打印操作记录 DB::connection()-enableQueryLog(); # ...
php银行开放平台接口:pfx... 问题描述: 对接易通银行,他们的服务开放平台是java开发,而我的是php,现在需要php版本的SD...