PHP перенаправление на основе HTTP_USER_AGENT - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь перенаправить мою страницу на основе User Agent.Я написал кусок кода и включил его до <!doctype html>

$SAFARI_URL = "https://example.com/ms/";
$OPERA_URL = "https://example.com/ms/";
$OTHER_URL = "https://example.com/";
$CHROME_URL = "https://example.com/";
// Redirection code
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];

function str_present($str,$substr)
{
  $pos = strpos($str,$substr);

  if($pos === false) {
   return false;
  }else {
    return true;
  }
}

  if (str_present($HTTP_USER_AGENT, "Safari")){ 
    Header ("Location: " . $SAFARI_URL);
  }else if (str_present($HTTP_USER_AGENT, "Opera")){ 
    Header ("Location: " . $OPERA_URL);
  }else if (str_present($HTTP_USER_AGENT, "Chrome")){ 
    Header ("Location: " . $CHROME_URL);
  }else{ 
    Header ("Location: " . $OTHER_URL);
  }

Проблема в том, что он не работает для Chrome.Я делаю что-то неправильно?Разве это не достаточно точно?

1 Ответ

0 голосов
/ 03 декабря 2018

Вы должны попробовать этот код для обнаружения браузеров пользователя.

 $SAFARI_URL = "https://example.com/ms/";
    $OPERA_URL = "https://example.com/ms/";
    $OTHER_URL = "https://example.com/";
    $CHROME_URL = "https://example.com/";
    $user_agent =    $_SERVER['HTTP_USER_AGENT'];

        if (strpos($user_agent, 'Opera') || strpos($user_agent, 'OPR/')) 
         redirect($OPERA_URL );
        elseif (strpos($user_agent, 'Edge')) 
         //redirect($url);
        elseif (strpos($user_agent, 'Chrome')) 
        redirect($CHROME_URL );
        elseif (strpos($user_agent, 'Safari')) 
        redirect($SAFARI_URL );
        elseif (strpos($user_agent, 'Firefox')) 
        //redirect($url);
        elseif (strpos($user_agent, 'MSIE') || strpos($user_agent, 'Trident/7'))  
        //redirect($url); //internet explorer

        redirect($OTHER_URL);
    }



function redirect($url) {
    ob_start();
    header('Location: '.$url);
    ob_end_flush();
    die();
}

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...