使用php判断浏览器的类型和语言的函数代码

yipeiwu_com6年前PHP代码库

我们经常看到有一些网站上面会显示出你目前使用的浏览器类型和使用的语言,比如显示的是:您使用的浏览器为 IE6,繁体字。看起来是不是很炫。

其实这样的功能不难实现,无非就是判断浏览器的类型和语言,如果用JS来做应该很简单,这里我们看看用PHP来怎么实现这样的功能,既然是在做判断,就可以用PHP的条件语句if..else来判断实现。

判断浏览器类型:

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

判断浏览器语言:

<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>

判断浏览器类型的具体程序如下:

复制代码 代码如下:

<?php
if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0")) 
echo "Internet Explorer 8.0"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0")) 
echo "Internet Explorer 7.0"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0")) 
echo "Internet Explorer 6.0"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3")) 
echo "Firefox 3"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2")) 
echo "Firefox 2"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome")) 
echo "Google Chrome"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari")) 
echo "Safari"; 
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera")) 
echo "Opera"; 
else echo $_SERVER["HTTP_USER_AGENT"]; 
?>


判断浏览器语言的具体程序如下:

复制代码 代码如下:

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。 
if (preg_match("/zh-c/i", $lang)) 
echo "简体中文"; 
else if (preg_match("/zh/i", $lang)) 
echo "繁體中文"; 
else if (preg_match("/en/i", $lang)) 
echo "English"; 
else if (preg_match("/fr/i", $lang)) 
echo "French"; 
else if (preg_match("/de/i", $lang)) 
echo "German"; 
else if (preg_match("/jp/i", $lang)) 
echo "Japanese"; 
else if (preg_match("/ko/i", $lang)) 
echo "Korean"; 
else if (preg_match("/es/i", $lang)) 
echo "Spanish"; 
else if (preg_match("/sv/i", $lang)) 
echo "Swedish"; 
else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; 
?>

小结:判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。

原理:因为浏览器在和服务器连接时候都会先发送一些包含自己信息的内容(浏览器类型、语言)。所以这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](浏览器语言)。我们所要做的就是把这些内容读出来,然后用strpos或者preg_match函数来对比就可以了,根据程序的设计我们还可以将页面设计得更漂亮一些出来。

相关文章

让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享

网上搜了很多方法都不奏效,研究了一天,发现通过以下的配置可以完美支持 'URL_MODEL' => 2 的情况了 复制代码 代码如下: location /project/ { i...

深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)

有关php的ob_flush()与flush()使用方法 注意:ob_flush()和flush()这两个函数一般要一起使用,顺序是先ob_flush(),然后flush(),它们的作用...

PHP-FPM运行状态的实时查看及监控详解

PHP-FPM运行状态的实时查看及监控详解

前言 大家都知道PHP-FPM内置了状态页,开启后可查看PHP-FPM的详细运行状态,给PHP-FPM优化带来帮助。 打开php-fpm.conf,配置php-fpm状态页选项 p...

php下汉字转化为拼音的代码第1/2页

复制代码 代码如下: <?php $d = array( array("a",-20319), array("ai",-20317), array("an",-20304), ar...

一个非常实用的php文件上传类

其实网上已经有很多这样的类了,不过出于练手的目的还是自己仿照着写了一个。 下面的代码放在一个名为UploadFile.class.php文件内 <?php /**...