检查字符串和用户代理

| 我正在尝试设置一个PHP代码段,以检查是否满足2个条件,如果满足,它会回显一些文本。条件是: 查询字符串等于某个值。 该浏览器是Firefox。 它正在正确检查查询字符串,但似乎不适用于浏览器(用户代理)。见下文:
<?php

function get_user_browser()
{
    $u_agent = $_SERVER[\'HTTP_USER_AGENT\'];
    $ub = \'\';
    if(preg_match(\'/Firefox/i\',$u_agent))
    {
        $ub = \"firefox\";
    }
    else
    {
        $ub = \"other\";
    }

} 

if (isset($_GET[\'print\']) && $_GET[\'print\'] != \"\" && $ub = \'firefox\') 
{
    $pg = $_GET[\'print\'];
    if (!file_exists(\'1\')) 
    {
        echo \'<b>It worked!</b>\';
    }
}
else 
{
    echo \'\';
}

?> 
任何帮助,将不胜感激。     
已邀请:
这是我要检查的东西:
if(strlen(strstr($_SERVER[\'HTTP_USER_AGENT\'],\"Firefox\")) <= 0 ){ // if not firefox

  //do something

}
并添加到您的代码中:
function get_user_browser()
{
    $u_agent = $_SERVER[\'HTTP_USER_AGENT\'];
    $ub = \'\';
    if(strlen(strstr($u_agent,\"Firefox\")) > 0 ){ 

      $ub = \'firefox\';

    }
    else {
      $ub = \'other\';
    }

    return $ub;
} 

if (isset($_GET[\'print\']) && $_GET[\'print\'] != \"\" 
                          && get_user_browser() == \'firefox\') 
{
    $pg = $_GET[\'print\'];
    if (!file_exists(\'1\')) 
    {
        echo \'<b>It worked!</b>\';
    }
}
else 
{
    echo \'\';
}
    
这是我用的;
function getBrowser() 
{ 
    $u_agent = $_SERVER[\'HTTP_USER_AGENT\']; 
    $bname = \'Unknown\';
    $platform = \'Unknown\';
    $version= \"\";

//First get the platform?
if (preg_match(\'/linux/i\', $u_agent)) {
    $platform = \'linux\';
}
elseif (preg_match(\'/macintosh|mac os x/i\', $u_agent)) {
    $platform = \'mac\';
}
elseif (preg_match(\'/windows|win32/i\', $u_agent)) {
    $platform = \'windows\';
}

// Next get the name of the useragent yes seperately and for good reason
if(preg_match(\'/MSIE/i\',$u_agent) && !preg_match(\'/Opera/i\',$u_agent)) 
{ 
    $bname = \'Internet Explorer\'; 
    $ub = \"MSIE\"; 
} 
elseif(preg_match(\'/Firefox/i\',$u_agent)) 
{ 
    $bname = \'Mozilla Firefox\'; 
    $ub = \"Firefox\"; 
} 
elseif(preg_match(\'/Chrome/i\',$u_agent)) 
{ 
    $bname = \'Google Chrome\'; 
    $ub = \"Chrome\"; 
} 
elseif(preg_match(\'/Safari/i\',$u_agent)) 
{ 
    $bname = \'Apple Safari\'; 
    $ub = \"Safari\"; 
} 
elseif(preg_match(\'/Opera/i\',$u_agent)) 
{ 
    $bname = \'Opera\'; 
    $ub = \"Opera\"; 
} 
elseif(preg_match(\'/Netscape/i\',$u_agent)) 
{ 
    $bname = \'Netscape\'; 
    $ub = \"Netscape\"; 
} 

// finally get the correct version number
$known = array(\'Version\', $ub, \'other\');
$pattern = \'#(?<browser>\' . join(\'|\', $known) .
\')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#\';
if (!preg_match_all($pattern, $u_agent, $matches)) {
    // we have no matching number just continue
}

// see how many we have
$i = count($matches[\'browser\']);
if ($i != 1) {
    //we will have two since we are not using \'other\' argument yet
    //see if version is before or after the name
    if (strripos($u_agent,\"Version\") < strripos($u_agent,$ub)){
        $version= $matches[\'version\'][0];
    }
    else {
        $version= $matches[\'version\'][1];
    }
}
else {
    $version= $matches[\'version\'][0];
}

// check if we have a number
if ($version==null || $version==\"\") {$version=\"?\";}

return array(
    \'userAgent\' => $u_agent,
    \'name\'      => $bname,
    \'version\'   => $version,
    \'platform\'  => $platform,
    \'pattern\'    => $pattern
);

} 
您也可以看看; https://github.com/donatj/PhpUserAgent     
我看不到您的代码调用该函数,因此$ ub在您的情况下不起作用。
<?php

$u_agent = $_SERVER[\'HTTP_USER_AGENT\'];
$ub = \'other\';
if(preg_match(\'/Firefox/i\',$u_agent))
{
    $ub = \"firefox\";
}

if (isset($_GET[\'print\']) && $_GET[\'print\'] != \"\" && $ub == \'firefox\') {
$pg = $_GET[\'print\'];
if (!file_exists(\'1\')) {
echo \'<b>It worked!</b>\';
}
} 
else {
echo \'\';
}
?> 
    

要回复问题请先登录注册