• 技术文章 >后端开发 >php教程

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

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

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

    判断浏览器类型:

    判断浏览器语言:

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

    复制代码 代码如下:

    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"];
    ?>


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

    复制代码 代码如下:

    $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函数来对比就可以了,根据程序的设计我们还可以将页面设计得更漂亮一些出来。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:浏览器 类型 语言
    上一篇:file_get_contents获取不到网页内容的解决方法_php技巧 下一篇:PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT_php技巧
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 细思极恐?关于in_array的第3个参数• 关于php数组排序的有关问题 • php资料的上传与删除方法 • Smarty模板中嵌入PHP代码总是报错,该怎么处理 • sql中执行没有关问题php中执行出错~
    1/1

    PHP中文网