关于php判断是否移动端访问访问的信息

  • 1、php 判断是否是手机浏览器访问
  • 2、怎么用php判断用户的访问是否是来自移动端
  • 3、php判断是不是移动端设备访问

该功能的实现思路是通过HTTP_X_WAP_PROFILE、HTTP_VIA、HTTP_USER_AGENT等信息来判断访客是否通过移动端浏览器访问PHP网站。以下是PHP代码:

/**

* 是否移动端访问访问

*

* @return bool

*/

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 (‘nokia’,

‘sony’,

‘ericsson’,

‘mot’,

‘samsung’,

‘htc’,

‘sgh’,

‘lg’,

‘sharp’,

‘sie-‘,

‘philips’,

‘panasonic’,

‘alcatel’,

‘lenovo’,

‘iphone’,

‘ipod’,

‘blackberry’,

‘meizu’,

‘android’,

‘netfront’,

‘symbian’,

‘ucweb’,

‘windowsce’,

‘palm’,

‘operamini’,

‘operamobi’,

‘openwave’,

‘nexusone’,

‘cldc’,

‘midp’,

‘wap’,

‘mobile’

);

// 从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;

}

function isMobile()

{

// 如果有HTTP_X_WAP_PROFILE则一定是移动设备

if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE’]))

{

return true;

}

// 如果HTTP_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 (‘nokia’,

‘sony’,

‘ericsson’,

‘mot’,

‘samsung’,

‘htc’,

‘sgh’,

‘lg’,

‘sharp’,

‘sie-‘,

‘philips’,

‘panasonic’,

‘alcatel’,

‘lenovo’,

‘iphone’,

‘ipod’,

‘blackberry’,

‘meizu’,

‘android’,

‘netfront’,

‘symbian’,

‘ucweb’,

‘windowsce’,

‘palm’,

‘operamini’,

‘operamobi’,

‘openwave’,

‘nexusone’,

‘cldc’,

‘midp’,

‘wap’,

‘mobile’

);

// 从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;

}

复制粘贴

/**

 * 判断是否手机访问

 */

function is_mobile()

{

  static $is_mobile;

  if (isset($is_mobile)) return $is_mobile;

  if (empty($_SERVER[‘HTTP_USER_AGENT’])) {

    $is_mobile = false;

  } elseif (strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Mobile’) !== false // many mobile devices (all iPhone, iPad, etc.)

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Android’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Silk/’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Kindle’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘BlackBerry’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Opera Mini’) !== false

    || strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Opera Mobi’) !== false

  ) {

    $is_mobile = true;

  } else {

    $is_mobile = false;

  }

  return $is_mobile;

}

原创文章,作者:JANW8,如若转载,请注明出处:https://www.506064.com/n/126168.html

(0)
JANW8JANW8
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • Java工程师的职责与挑战

    Java是目前最为流行的编程语言之一,随着互联网和移动互联网的普及,Java工程师的职业前景越来越受到人们的关注。本文将从多个方面阐述Java工程师的职责与挑战,希望给读者带来一些…

    编程 2024-10-04
  • 如何为网页优化打印样式

    在我们日常工作和学习中,打印网页是很常见的需求。但是,打印的效果往往与我们所期望的不太一样。这是由于网页本身的样式设置并没有考虑到打印输出的情况。在这篇文章中,我们将详细介绍如何为…

    编程 2024-10-04
  • C++中的逻辑与运算符

    一、什么是逻辑与运算符 逻辑与运算符(&&)是C++中的一种逻辑运算符,用于判断两个表达式是否同时为真,其在逻辑运算序列中优先级次于括号,且具有短路特性,即如果第一…

    编程 2024-10-04
  • 基于python的炒股软件,用Python炒股

    本文目录一览: 1、炒股有哪些软件 2、模拟炒股什么软件比较好 3、怎样用 Python 写一个股票自动交易的程序 4、如何用Python和机器学习炒股赚钱 5、怎样用 Pytho…

    编程 2024-10-03
  • 算阶乘c语言,阶乘C语言

    本文目录一览: 1、C语言中阶乘怎么输? 2、c语言如何求一个数的阶乘 3、c语言求阶乘的函数 C语言中阶乘怎么输? 1、不是直接输入n!,需要一定的算法才可以实现。具体方法是,首…

    编程 2024-10-03
  • 优雅的字符串展示

    一、格式字符串 格式字符串是一种将变量或表达式嵌入到字符串中并将其替换为实际值的方法。在Python 3.6及以上版本中,可以使用大括号{}和format()方法来创建格式字符串。…

    编程 2024-10-04
  • mysql数据库中排序规则(mysql数据库中排序规则转换)

    本文目录一览: 1、各位大神求解决:MYSQL数据库无法更改排序规则? 2、mysql数据库怎么可以两个条件排序? 3、关于mysql数据库排序的问题 4、如何用MySQL创建一个…

  • aria下载器:一个全能的下载工具

    随着互联网的迅速发展,我们几乎可以随时随地下载各种类型的文件。但是,在选择下载工具时,我们也遇到了相应的问题:一些下载工具不支持所有的文件格式,有些工具下载速度慢,而其他的则需要收…

    编程 2024-10-03
  • 一段js动态操作table代码的简单介绍

    本文目录一览: 1、js如何动态操作table 2、用js实现动态添加表格数据 3、只用js如何实现表格内容的动态修改? 4、js如何操作table,tr,td js如何动态操作t…

  • php绝对等于,php 等于

    本文目录一览: 1、PHP中看见有if($A === $B),有”===”这种用法?是不是写错了 2、php中===是什么意思? 3、PHP语言中如何比较两…

    编程 2024-10-04

发表回复

登录后才能评论