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. 猫眼 top_100 爬取 ___只完成了第一页

    # python 3.7 from urllib.request import Request,urlopen import time,re,csv class Maoyan(object): def ...

  2. 重构drf项目后的manage.py报错的问题

    Python3.6 用Django连接mysql一直报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer ...

  3. linux centos安装nginx1.7.4

    原文转自 jerryhe326:https://www.cnblogs.com/jerrypro/p/7062101.html一.安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装ng ...

  4. IMSI-catcher:可发现附近手机敏感信息的工具

      严正声明:该工具主要是为了让大家更好的了解GSM网络的工作原理而设计开发的,请不要用于恶意目的! 前言 IMSI-catcher是一个可以帮助你发现附近手机的IMSI号码,国家,品牌和运营商等信息 ...

  5. python3 基础一

    一.python基本运行 1.python特点:(1)python使用C语言开发,但是python不再有C语言中的指针等复杂数据类型,(2)python有很强的面向对象特性,而且简化了面向对象的实现, ...

  6. 更改jupyter notebook的单元格宽度和主题颜色(theme)

    一.单元格宽度 这个命令: jt -t gruvboxl -f roboto -fs 12 -cellw 100% -T -N 它将宽度设置为100% 二.主题颜色 在用jupyter noteboo ...

  7. mysql基础篇--库的管理

    库的创建 create database [if not exists] 库名; 库的修改 alter database 库名 character set 字符集; #更改库的字符集 库的删除 dro ...

  8. login.exp

    #!/usr/bin/expect ] ] ] ] spawn ssh -p $user@$host expect { "*yes/no*" {send "yes\r&q ...

  9. 尤娜博客系统 Una

    站长资讯平台:Una [‘尤娜’] 只是一个项目代号,没有特殊含义.尤娜是站在巨人的肩膀上开发完成的博客系统,旨在为程序员提供一个极简的内容创作管理平台,尤娜100%开放源代码,如果您对她感兴趣,Fo ...

  10. 用Qt 画一个心形

    MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTi ...