Как построить массив для проверки пользовательского агента по переменной browscap и version и вывести оператор if? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть файл, который читает агент браузера пользователя, и если он совпадает с именем и версией браузера, выводит оператор 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>';
        }
}

Теперь я добавляю еще несколько в этот список и хочучтобы иметь возможность иметь их все в одном операторе, чтобы я не копировал один и тот же код снова и снова.Мои новые переменные будут перечислены следующим образом:

$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 голосов
/ 26 марта 2019

Я бы создал массив, где вы могли бы напрямую получить доступ к информации о версии браузера, используя значение того, что вы называете $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>";
}

Чтобы добавить новые браузеры или версии, все, что вам нужно сделать, это обновить массив. Есть еще кое-что, что вы хотите сделать, чтобы убедиться, что вы получаете фактические значения из $ версий, но этого должно быть достаточно, чтобы начать работу без повторения каких-либо утверждений.

...