如何获取用户的浏览器名称并将其作为要标记的类附加

时间:2012-05-02 06:59:54

标签: php concrete5

我正在为Concret 5做一个主题,我不确定混凝土5中我的问题是否已经有类似的解决方案。

我想将用户的浏览器名称附加到我的<body>,以便我可以稍后通过css定位它们

示例PHP如何将名称呈现给我的body标签。

<body class="ie5" >
or
<body class="safari" >

我将稍后使用的CSS示例

body.ie div#id { background: #ccc }
body.safari div#id { font-size: 15px; }

4 个答案:

答案 0 :(得分:3)

根据您之前未提出的其他要求

获取所有浏览器的名称

        $u_agent = $_SERVER['HTTP_USER_AGENT'];
        $ub = '';
        if(preg_match('/MSIE/i',$u_agent))
        {
            $ub = "Internet Explorer";
        }
        elseif(preg_match('/Firefox/i',$u_agent))
        {
            $ub = "Mozilla Firefox";
        }
        elseif(preg_match('/Safari/i',$u_agent))
        {
            $ub = "Apple Safari";
        }
        elseif(preg_match('/Chrome/i',$u_agent))
        {
            $ub = "Google Chrome";
        }
        elseif(preg_match('/Flock/i',$u_agent))
         {
            $ub = "Flock";
        }
        elseif(preg_match('/Opera/i',$u_agent))
        {
            $ub = "Opera";
        }
        elseif(preg_match('/Netscape/i',$u_agent))
        {
            $ub = "Netscape";
        }

现在您可以显示浏览器名称

<body class="'. $ub ." >

答案 1 :(得分:1)

$u_agent = $_SERVER['HTTP_USER_AGENT']; // get the current browser name


// for safari 
if(preg_match('/Safari/i',$u_agent)) // then check if the browser is safari 
        {
           echo "body.safari div#id { font-size: 15px; }"; // then apply your class here

        }

// for IE
if(preg_match('/MSIE/i',$u_agent))
        {
            echo "body.ie div#id { background: #ccc }";
        }

答案 2 :(得分:0)

您可以使用变量$_SERVER['HTTP_USER_AGENT']

http://php.net/manual/en/reserved.variables.server.php

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

Firefox的示例值为:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

答案 3 :(得分:0)

<?php $agent=$_SERVER['HTTP_USER_AGENT']?>

然后在HTML中:

<html>
    <head>
    </head>
    <body class="<?php echo $agent?>">
    </body>
</html>

然后只为每个浏览器名称/类型设置CSS