2011-05-25 89 views
3

我想設置一個PHP代碼段來檢查是否滿足2個條件,如果它們是,它會回顯一些文本。條件是:檢查字符串和用戶代理

  1. 查詢字符串等於某個值。
  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 ''; 
} 

?> 

任何幫助,將不勝感激。

+0

如果(isset($ _ GET [ '打印'])&& $ _GET [ '打印']!= 「」 && $ UB = '火狐'),你的意思是=或==? – 2011-05-25 16:19:59

回答

8

這是我做的,檢查出來的東西:

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 ''; 
} 
+0

@Neal - 酷。這將檢查瀏覽器是否不是Firefox。我如何檢查它是否是Firefox?另外,我如何將其整合到我的腳本中? – Batfan 2011-05-25 16:18:12

+1

@Batfan一分鐘生病添加它 – Neal 2011-05-25 16:18:58

+1

@Batfan,它已被添加 – Neal 2011-05-25 16:20:10

2

我看不到你的代碼中調用該函數,並由此$ 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 ''; 
} 
?> 
+0

我試過上面的代碼,它仍然顯示在所有瀏覽器中回顯文本。 – Batfan 2011-05-25 16:20:32

+1

我沒有看到檢查瀏覽器的任何問題,除非你的代碼在某種情況下有問題:)我測試了它成功。 – 2011-05-25 16:24:11

+0

我的情況可能有問題。尼爾的答案似乎工作。謝謝 – Batfan 2011-05-25 16:33:53

1

這是我用的;

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