博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP判断客户端是PC web端还是移动手机端方法
阅读量:6932 次
发布时间:2019-06-27

本文共 2154 字,大约阅读时间需要 7 分钟。

PHP判断客户端是PC web端还是移动手机端方法

需要实现:判断手机版的内容加上!c550x260.jpg后缀变成缩略图
PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能 的请本人看另外一篇文章:

  判断是否手机访问,火狐模拟器返回fasle,chrome模拟器返回true

 判断手机发送的客户端标志,兼容性有待提高,把常见的类型放到前面

火狐需要在模拟器右边的“自定义 User Agent”包含下面代码判断的关键字才行,比如:Mozilla/5.0 android,或直接android

/** * 判断是否手机访问,火狐模拟器返回fasle,chrome模拟器返回true * 火狐需要在模拟器右边的“自定义 User Agent”包含下面代码判断的关键字才行,比如:Mozilla/5.0 android,或直接android * @return boolean */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 (            'android',            'iphone',            'samsung',            'ucweb',            'wap',            'mobile',            'nokia',            'sony',            'ericsson',            'mot',            'htc',            'sgh',            'lg',            'sharp',            'sie-',            'philips',            'panasonic',            'alcatel',            'lenovo',            'ipod',            'blackberry',            'meizu',            'netfront',            'symbian',            'windowsce',            'palm',            'operamini',            'operamobi',            'openwave',            'nexusone',            'cldc',            'midp'        );        // 从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;}

 

转载地址:http://ifmjl.baihongyu.com/

你可能感兴趣的文章
JavaScript中的闭包
查看>>
Perl错误处理机制
查看>>
OA系统构建神器---力软敏捷开发框架
查看>>
运用反射类改变数组长度
查看>>
java swap
查看>>
境外支付 识别银联标识
查看>>
hibernate4-hbm.xml基本使用-Maven Demo
查看>>
oracle 中update set from 语句格式【转】
查看>>
Java学习之深拷贝浅拷贝及对象拷贝的两种方式
查看>>
开源OSS.Social微信项目解析
查看>>
如何根据动态SQL代码自动生成DTO
查看>>
VS中C++代码折叠
查看>>
html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
查看>>
在线HTML编辑器——ueditor,跟struts2结合
查看>>
ora-12560的解决方法
查看>>
HBase是什么?为什么要使用HBase?
查看>>
C#高级编程(第8版)
查看>>
《iOS应用逆向工程:分析与实战》迷你书
查看>>
常用PHP框架功能对比表
查看>>
Unity Shader中各种空间及变换方法
查看>>