如何建立用于检查用户代理与browscap和浏览器版本变量的数组并输出if语句?

时间:2019-03-25 18:16:52

标签: php arrays browscap

我有一个读取用户浏览器代理的文件,如果它与浏览器名称和版本匹配,则会输出一个if语句。

$firefoxv = "66.0";
$chromev = "73.0";

if ($browser1['browser'] == "Firefox") {
    if ($browser1['version'] !== $firefoxv)  { 
            echo '<p style="margin-top: 20px;"><b class="label label-danger"><i class="fa fa-exclamation"></i> Your Browser is Out of Date</b></p>Current Version: <b class="label label-success">'.$firefoxv.'</b> - Your Version: <b class="label label-danger">'.$browser1['version'].'</b>';
        } else {
            echo '<p style="margin-top: 20px;"><b class="label label-success"><i class="fa fa-check"></i> Your Browser is Up to Date</b></p>';
        }
}

if ($browser1['browser'] == "Chrome") {
    if ($browser1['version'] !== $chromev)  { 
            echo '<p style="margin-top: 20px;"><b class="label label-danger"><i class="fa fa-exclamation"></i> Your Browser is Out of Date</b></p>Current Version: <b class="label label-success">'.$chromev.'</b> - Your Version: <b class="label label-danger">'.$browser1['version'].'</b>';
        } else {
            echo '<p style="margin-top: 20px;"><b class="label label-success"><i class="fa fa-check"></i> Your Browser is Up to Date</b></p>';
        }
}

现在,我要在此列表中添加更多内容,并且希望能够在1条语句中包含所有这些内容,因此我不会一遍又一遍地复制相同的代码。 我的新变量将像这样列出:

$android_browser="Android";
$android_ver="5.1";
$android_webView_browser="Android WebView";
$android_webView_ver="33.0";
$chrome_browser="Chrome";
$chrome_ver="73.0";
$chromium_browser="Chromium";
$chromium_ver="73.0";

我希望它具有与上述相同的if语句,但可以使用新的变量集。可以用某种数组或类似的东西来做到吗?

它基本上需要查找并匹配浏览器名称,然后在匹配时检查版本,如果用户浏览器与变量中的版本匹配,则显示“浏览器最新”,否则显示“浏览器过期”。

谢谢

1 个答案:

答案 0 :(得分:0)

我将创建一个数组,您可以在其中使用调用的$browser1['browser']的值直接访问浏览器版本信息。

例如:

$versions = Array(
  "Firefox" => "66.0",
  "Chrome" => "73.0",
  ...
);

这样,您可以通过引用$versions[$browser1['browser']]的值来快速获取最新版本的浏览器

为此,您可以检查未知浏览器类型的值是否为NULL。

从那里开始,检查任何浏览器/版本情况所需要做的只是一个语句:

if ($browser1['version'] < $version[$browser1['browser']]){
    echo "<p style=\"margin-top: 20px;\"><b class=\"label label-danger\"><i class=\"fa fa-exclamation\"></i> Your Browser is Out of Date</b></p>Current Version: <b class=\"label label-success\">{$version[$browser1['browser']]}</b> - Your Version: <b class=\"label label-danger\">{$browser1['version']}</b>";
}
else {
    echo "<p style=\"margin-top: 20px;\"><b class=\"label label-success\"><i class=\"fa fa-check\"></i> Your Browser is Up to Date</b></p>";
}

要添加新的浏览器或版本,您要做的就是更新Array。要确保从$ versions返回实际值,您还需要做更多的事情,但这足以使您入门而不必重复任何语句。