0

我有一个读取用户浏览器代理的文件,如果它与浏览器名称和版本匹配,它会输出一个 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 语句,但可以使用新的变量集。这可以用某种数组或类似的东西来完成吗?

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

谢谢你

4

1 回答 1

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 中获取实际值,但这应该足以让您开始,而无需重复任何语句。

于 2019-03-25T21:52:57.840 回答