首页 后端开发 php教程 php获取客户端浏览器以及操作系统信息的方法

php获取客户端浏览器以及操作系统信息的方法

Nov 22, 2016 am 11:45 AM
浏览器

在较为智能的程序中,php可以获取客户端浏览器及操作系统信息,然后根据浏览器及系统类型,加载不同的页面,以提供更加个性化的服务。 

下面我们就一起来学习如何使用php获取客户端浏览器与操作系统信息,有兴趣的朋友可以参考下。 

1、PHP超级全局变量$_SERVER数组中字段['HTTP_USER_AGENT'] 获取访问用户的所有信息 
以下是一个通过$_SERVER['HTTP_USER_AGENT']获取到的字符串 : 
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2 

2、使用正则表达式匹配以上字符串,用户的浏览器、操作系统信息。 

3、PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS、JS等,返回给用户 

我的浏览器与操作系统信息: 
Browser: Chrome 5.0 
Platform: Windows 7 

下面给出一个完整的例子。 
//显示访问用户的浏览器信息
echo 'Browser: ' . determinebrowser($Agent) . '
'; 
//显示访问用户的操作系统平台 
echo 'Platform: ' . determineplatform($Agent). '
'; 

//link:http://www.jbxue.com 
//正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息 
function determinebrowser ($Agent) { 
$browseragent=""; //浏览器 
$browserversion=""; //浏览器的版本 
if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) { 
$browserversion=$version[1]; 
$browseragent="Internet Explorer"; 
} else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) { 
$browserversion=$version[1]; 
$browseragent="Opera"; 
} else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) { 
$browserversion=$version[1]; 
$browseragent="Firefox"; 
}else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) { 
$browserversion=$version[1]; 
$browseragent="Chrome"; 

else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) { 
$browseragent="Safari"; 
$browserversion=""; 

else { 
$browserversion=""; 
$browseragent="Unknown"; 

return $browseragent." ".$browserversion; 


// 同理获取访问用户的浏览器的信息 
function determineplatform ($Agent) { 
$browserplatform==''; 
if (eregi('win',$Agent) && strpos($Agent, '95')) { 
$browserplatform="Windows 95"; 

elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) { 
$browserplatform="Windows ME"; 

elseif (eregi('win',$Agent) && ereg('98',$Agent)) { 
$browserplatform="Windows 98"; 

elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) { 
$browserplatform="Windows 2000"; 

elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { 
$browserplatform="Windows XP"; 

elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) { 
$browserplatform="Windows Vista"; 

elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) { 
$browserplatform="Windows 7"; 

elseif (eregi('win',$Agent) && ereg('32',$Agent)) { 
$browserplatform="Windows 32"; 

elseif (eregi('win',$Agent) && eregi('nt',$Agent)) { 
$browserplatform="Windows NT"; 
}elseif (eregi('Mac OS',$Agent)) { 
$browserplatform="Mac OS"; 

elseif (eregi('linux',$Agent)) { 
$browserplatform="Linux"; 

elseif (eregi('unix',$Agent)) { 
$browserplatform="Unix"; 

elseif (eregi('sun',$Agent) && eregi('os',$Agent)) { 
$browserplatform="SunOS"; 

elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) { 
$browserplatform="IBM OS/2"; 

elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) { 
$browserplatform="Macintosh"; 

elseif (eregi('PowerPC',$Agent)) { 
$browserplatform="PowerPC"; 

elseif (eregi('AIX',$Agent)) { 
$browserplatform="AIX"; 

elseif (eregi('HPUX',$Agent)) { 
$browserplatform="HPUX"; 

elseif (eregi('NetBSD',$Agent)) { 
$browserplatform="NetBSD"; 

elseif (eregi('BSD',$Agent)) { 
$browserplatform="BSD"; 

elseif (ereg('OSF1',$Agent)) { 
$browserplatform="OSF1"; 

elseif (ereg('IRIX',$Agent)) { 
$browserplatform="IRIX"; 

elseif (eregi('FreeBSD',$Agent)) { 
$browserplatform="FreeBSD"; 

if ($browserplatform=='') {$browserplatform = "Unknown"; } 
return $browserplatform; 

?> 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在网页上正确显示本地安装的'荆南麦圆体”? 如何在网页上正确显示本地安装的'荆南麦圆体”? Apr 05, 2025 pm 10:33 PM

在网页中使用本地安装的字体文件最近,我从网上下载了一种免费字体,并成功将其安装到了我的系统中。现在...

如何通过JavaScript或CSS控制浏览器打印设置中的页首和页尾? 如何通过JavaScript或CSS控制浏览器打印设置中的页首和页尾? Apr 05, 2025 pm 10:39 PM

如何使用JavaScript或CSS控制浏览器打印设置中的页首和页尾在浏览器的打印设置中,有一个选项可以控制是否显�...

负边距在某些情况下为何未生效?如何解决这个问题? 负边距在某些情况下为何未生效?如何解决这个问题? Apr 05, 2025 pm 10:18 PM

负边距为何在某些情况下未生效?在编程过程中,CSS中的负边距(negative...

如何在网页上使用本地安装的字体文件? 如何在网页上使用本地安装的字体文件? Apr 05, 2025 pm 10:57 PM

如何在网页上使用本地安装的字体文件你是否在网页开发中遇到过这样的情况:你已经在自己的电脑上安装了一...

Flex布局下文字超出省略却撑开容器?如何解决? Flex布局下文字超出省略却撑开容器?如何解决? Apr 05, 2025 pm 11:00 PM

Flex布局下文字超出省略导致容器撑开的问题及解决方法在使用Flex...

为什么Edge浏览器中的特定div元素无法显示?如何解决这个问题? 为什么Edge浏览器中的特定div元素无法显示?如何解决这个问题? Apr 05, 2025 pm 08:21 PM

如何解决用户代理样式表导致的显示问题?在使用Edge浏览器时,项目中的一个div元素无法显示。经过查看,发�...

CSS中如何通过旋转元素实现水平选项的水平滚动效果? CSS中如何通过旋转元素实现水平选项的水平滚动效果? Apr 05, 2025 pm 10:51 PM

CSS中如何实现水平选项的水平滚动效果?在现代网页设计中,如何实现类似于水平选项卡的效果,并且支持鼠标...

为什么两个inline-block元素会出现错位显示?如何解决这个问题? 为什么两个inline-block元素会出现错位显示?如何解决这个问题? Apr 05, 2025 pm 08:09 PM

探讨两个inline-block元素错位显示的原因在前端开发中,我们经常会遇到元素排版的问题,特别是当使用inline-block...

See all articles