PHP判断访问者是PC端还是移动端

  1. function isMobile()
  2. {
  3. // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
  4. if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE‘]))
  5. {
  6. return true;
  7. }
  8. // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
  9. if (isset ($_SERVER[‘HTTP_VIA‘]))
  10. {
  11. // 找不到为flase,否则为true
  12. return stristr($_SERVER[‘HTTP_VIA‘], "wap") ? true : false;
  13. }
  14. // 脑残法,判断手机发送的客户端标志,兼容性有待提高
  15. if (isset ($_SERVER[‘HTTP_USER_AGENT‘]))
  16. {
  17. $clientkeywords = array (‘nokia‘,
  18. ‘sony‘,
  19. ‘ericsson‘,
  20. ‘mot‘,
  21. ‘samsung‘,
  22. ‘htc‘,
  23. ‘sgh‘,
  24. ‘lg‘,
  25. ‘sharp‘,
  26. ‘sie-‘,
  27. ‘philips‘,
  28. ‘panasonic‘,
  29. ‘alcatel‘,
  30. ‘lenovo‘,
  31. ‘iphone‘,
  32. ‘ipod‘,
  33. ‘blackberry‘,
  34. ‘meizu‘,
  35. ‘android‘,
  36. ‘netfront‘,
  37. ‘symbian‘,
  38. ‘ucweb‘,
  39. ‘windowsce‘,
  40. ‘palm‘,
  41. ‘operamini‘,
  42. ‘operamobi‘,
  43. ‘openwave‘,
  44. ‘nexusone‘,
  45. ‘cldc‘,
  46. ‘midp‘,
  47. ‘wap‘,
  48. ‘mobile‘
  49. );
  50. // 从HTTP_USER_AGENT中查找手机浏览器的关键字
  51. if (preg_match("/(" . implode(‘|‘, $clientkeywords) . ")/i", strtolower($_SERVER[‘HTTP_USER_AGENT‘])))
  52. {
  53. return true;
  54. }
  55. }
  56. // 协议法,因为有可能不准确,放到最后判断
  57. if (isset ($_SERVER[‘HTTP_ACCEPT‘]))
  58. {
  59. // 如果只支持wml并且不支持html那一定是移动设备
  60. // 如果支持wml和html但是wml在html之前则是移动设备
  61. 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‘))))
  62. {
  63. return true;
  64. }
  65. }
  66. return false;
  67. }

if($this->isMobile()){

//跳转移动端页面

}else{

//跳转PC端页面

}

======================

首先推荐一个php轻量级识别类,Mobile-Detect 专门识别是手机端还是pc端访问网站,这样就可以根据访问的终端类型指向手机浏览器适配的网站还是pc浏览器的网站。

Mobile-Detect官网链接如下MobileDetect

示例链接如下:Mobile-Detect Example

下面是我写得简单的跳转适配PC端还是手机端的代码:

[php] view plain copy

  1. <?php
  2. require_once ‘Mobile_Detect.php‘;    //注意要引入Mobile_Detect.php  这个类在上文的连接中有下载链接
  3. $detect = new Mobile_Detect;
  4. if($detect->isMobile()){
  5. header(‘Location: http://127.0.0.1/MobileDetect/MobileDetect/mobile.html‘, true, 301);
  6. echo "mobile";
  7. }else{
  8. header(‘Location: http://127.0.0.1/MobileDetect/MobileDetect/pc.html‘, true, 301);
  9. echo "pc";
  10. }
  11. ?>

原文地址:https://www.cnblogs.com/apolloren/p/9029868.html

时间: 2024-10-09 02:27:00

PHP判断访问者是PC端还是移动端的相关文章

java端判断请求来自pc端还是手机端

记录是为了更好的成长! 在项目中遇到一个问题,需要判断请求是来自pc端还是手机端,如下直接贴代码: /** * 判断请求来自手机端还是电脑端 */ public static boolean isMobileDevice(String requestHeader) { /* * android :所有安卓设备 * mas os :iphone * windows phone :windows系统手机 */ String[] deviceArray = new String[] {"android

判断浏览器是pc端和移动

/** * 判断浏览器是pc端和移动端,并跳转到不同页面 */ function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; var bI

PHP判断访问来源是PC端还是移动端

一个方法轻松搞定,各种判断后当返回true为移动端,反之为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 str

在PC上测试移动端网站和模拟手机浏览器的5大方

查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模拟手机总共有四种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备.以下标星的为推荐方法. 1.新建Chrome快捷方式 右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择"复制",复制一个图标副本到桌面.右击该副本,选择"属性",

在PC上测试移动端网站和模拟手机浏览器的5大方法

查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模拟手机总共有四种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备.以下标星的为推荐方法. 1.新建Chrome快捷方式 右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择"复制",复制一个图标副本到桌面.右击该副本,选择"属性",

PC端、移动端的页面适配及兼容处理

一.关于移动端兼容性 目前针对跨终端的方案,主要分为两大阵营:一套资源Vs两套资源. 第一种是通过响应式或页面终端判断去实现一套资源适配所有终端: 第二种是通过终端判断分别调取两套资源以适配所有终端. 这两种思路我们并不能斩钉截铁的说哪一个更优选,正所谓”合适的才是最好的”. 思路一:通过响应式或页面终端判断去实现一套资源适配所有终端 优势:只需维护一套资源,维护成本较低. 劣势:需加载适配各个终端的各个资源,在不同终端通过响应式布局实现不同展现,部分交互效果需要在页面中做终端判断,代价较大,若

PC端、移动端页面适配方案

前言 页面自适应PC端.移动端大体上可以分为两种: 1.在同一个页面进行自适应布局,通常使用CSS3 @media 媒体查询器实现 2.两套页面,在后端进行统一适配,根据不同的浏览器UA返回对应的页面 本文记录在java后端进行PC端.移动端页面适配的方案 工程结构 想要实现后端统一适配,首先要规范好工程结构 后端代码,跟之前差不多,响应的viewName路径,直接从业务模块开始,适配工作交给aop:两套页面,对应的业务模块,分别放在两个目录下面 aop适配器 统一的适配工作交由aop环绕切面进

写程序判断系统是大端序还是小端序

大端是高位字节先存储(低地址) 小端是低位字节先存储(低地址) 网络字节序是大端的,也就是高位字节先传输 而int--char的强制转换,是将低地址的数值截断赋给char,利用这个准则可以判断系统是大端序还是小端序 #include <iostream> using namespace std; int main() { int a = 0x1234; char c = static_cast<char>(a); if (c == 0x12) cout << "

淘宝购物车页面 -- PC端和移动端实战

最近花了半个月的时间,做了一个淘宝购物车页面的demo.当然,为了能够更加深入的学习,不仅仅有PC端的固定宽度的布局,还实现了移动端在media query为768px以下(也就是实现了ipad,iphone 6 plus,iphone6,S5等)的flexbox弹性布局. 还要再说的是,pc端和移动端淘宝购物车页面的bug基本修复完毕,完全适合一个对html,css,css3 ,html5和js有基础,并且熟悉jquery,scss,熟悉json数据交换格式,jquery ajax的人进行学习