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. 【2017-09-04】JavaWeb内置对象

    Jsp页面中引入别的页面 include命令 <%@ include file="要引入的页面路径"%> 页面中的form表单提交方式: post: 提交内容不可见, ...

  2. linux下18种监测网络带宽方式

    1. nload nload是一个命令行工具,让用户可以分开来监控入站流量和出站流量.它还可以绘制图表以显示入站流量和出站流量,视图比例可以调整.用起来很简单,不支持许多选项. 所以,如果你只需要快速 ...

  3. 按下开机键,Linux做了什么?

    作者:Vamei 来源:见文末 计算机开机是一个神秘的过程.我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面.然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面 ...

  4. 从客户端中检测到有潜在危险的 request.form值

    这里只说ASP.NET MVC的解决方法,ASP.NET已经不碰了. 给控制器加上[ValidateInput(false)]特性即可忽略含有HTML标记的内容. [HttpPost] [Valida ...

  5. java判断文件是否为图片

    /** * 判断文件是否为图片<br> * <br> * @param pInput 文件名<br> * @param pImgeFlag 判断具体文件类型< ...

  6. hibernate配置和映射文件

    映射文件 <?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping ...

  7. MVC路由规则进一步了解

    本周由于工作需要,接触了PetaPoco(一个小型的ORM-框架)和ExtJS,这个项目框架是别人写好的,用的是MVC,我写的MVC程序一般控制器和视图都是在一个类库下面的,但是作者是把MVC中的控制 ...

  8. JQuery-UI组件化开发

    ===================== 页面相关样式及其脚本的引入先后顺序,如下: 1,layout.css 页面的静态基本框架布局样式 2,base.css 页面的静态细节样式 3,ui.css ...

  9. 项目:JS实现简易计算器案例

    组件化网页开发下的: 步骤一:让页面动起来的JavaScript深入讲解  的 项目:JS实现简易计算器案例

  10. Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题

    A. Optimal Currency ExchangeAndrew was very excited to participate in Olympiad of Metropolises. Days ...