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端还是手机端的代码:

  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. ?>

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

  1. 判断浏览器是pc端还是手机端

    1. 判断浏览器是pc端还是手机端 <script type="text/javascript"> var browser = { versions: function ...

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

    PHP判断客户端是PC web端还是移动手机端方法需要实现:判断手机版的内容加上!c550x260.jpg后缀变成缩略图PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能 ...

  3. (原) Jquery 判断设备是PC端,还是移动端

    判断设备是PC端,还是移动端 var ua = navigator.userAgent.toLocaleLowerCase(); var pf = navigator.platform.toLocal ...

  4. JS判断当前使用设备是pc端还是web端(转MirageFireFox)

    js判断当前设备 最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实. 仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站. 站点 PC端url we ...

  5. js判断页面在pc端打开还是移动端打开

    js判断页面在pc端打开还是移动端打开,分别跳转不同的index.html window.addEventListener('load', function() { // true为手机,false为 ...

  6. java 判断用户是PC端和还是APP端登陆

    java 判断用户是PC端和还是APP端登陆 public void getRequestHeader(HttpServletRequest request){ // 从浏览器获取请求头信息 Stri ...

  7. 如何判断页面是pc端还是移动端,进入不同的页面

    vue判断是pc端还是移动端分别进入不同的页面 判断移动端代码如下: function IsPC(){ var userAgentInfo = navigator.userAgent; var Age ...

  8. 判断pc端或移动端并跳转

    判断pc端或移动端并跳转 代码目录: index.html代码: <!DOCTYPE html> <html lang="en"> <head> ...

  9. js控制媒体查询样式/判断是PC端还是移动端

    如果遇到,想要在pc端和移动端上的js效果显示不同的话,可以加上以下代码: var result = window.matchMedia('(max-width: 768px)'); if (resu ...

随机推荐

  1. c# Format() 方法

  2. 有关linux中出现systemctl status network.service" and "journalctl -xe" for details.

    Job for network.service failed because the control process exited with error code >**[root@mina0 ...

  3. mount命令解析

    可以参考两位大神的理解 Linux mount 命令 Linux的mount命令详解

  4. Python 数据类型和控制结构

    Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候.不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Pytho ...

  5. python获取字符串的前几个字符(包含汉字)

    一个简单的字符串,比如a="小明xiaoming"或者b="小xiao明ming".想在只想得到字符串的前4个元素,a1="小明xi",b= ...

  6. python3 模块和包

    一.模块(Module)和包(Package) 1.模块:一个包含所有你定义的函数和变量的文件,其后缀名是 .py ,一个.py文件就是一个模块 2.包:一定包含 __init__.py模块 的文件夹 ...

  7. APP支付宝登录--PHP处理代码

    1.首先需要参数: aucth_code  udid re_id极光推送id 2.https://open.alipay.com/platform/keyManage.htm 配置公钥私钥 3.需要s ...

  8. BCB6 使用TZCompressionStream压缩

          最近由于项目需要涉及到解压第三方公司的数据,在此做一下记录环境部署和使用方法,免得以后忘记.    对方公司的数据是通过TCompressionStream 压缩之后,存到数据库中,采用的 ...

  9. unity 拿到管线权限的解决方案

    自己建个cmd 传给postprocess layer camera event可以加在这个cmd上控制位置  base pass post process ui都共享这段cmd 在一开始记下back ...

  10. CF D. Ehab and the Expected XOR Problem 贪心+位运算

    题中只有两个条件:任意区间异或值不等于0或m. 如果只考虑区间异或值不等于 0,则任意两个前缀异或值不能相等. 而除了不能相等之外,还需保证不能出现任意两个前缀异或值不等于m. 即 $xor[i]$^ ...