2016-08-08 85 views
1

我想将所有从Opera Mini浏览器打开的URL重定向到使用PHP的特定浏览器。我有下面的代码,但它不工作。请帮帮我。用于Opera Mini的浏览器的URL重定向

 

if(! empty($_SERVER['HTTP_USER_AGENT'])){ 

    $useragent = $_SERVER['HTTP_USER_AGENT']; 
     if(preg_match('@(Opera Mini)@', $useragent)){ 

      $host = $_SERVER['REQUEST_URI']; 

      if($host !== 'mywebsite.com/browser-error'){ 

       header('Location: ./browser-error'); 
      } 
     } 
} 

+0

什么' $ host'?你如何得到这个'var'? –

+0

对不起,错误的代码。编辑的一个是否正确? 我试图添加当前的URL检查,因为即使在/浏览器错误中,这些代码也会出现在每个页面中,所以如果它已经在该页面中,我需要跳过重定向。 –

回答

2

根据dev.opera.comopera mini用户代理具有以下格式:

的User-Agent:歌剧院/ 9.80($ PLATFORM_NAME $; $ PRODUCT_NAME/$ CLIENT_VERSION/$ SERVER_VERSION $ ; U; $ $ LOCALE) $ PRESTO_VERSION $ $ $ EQUIV_DESKTOP_VERSION

实施例:

User-Agent: Opera/9.80 (Android; Opera Mini/8.0.1807/36.1609; U; en) Presto/2.12.423 Version/12.16 

检测到它使用:

if (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false) { 
    echo 'is opera mini'; 
} 
1

您可以使用此PHP代码来检查浏览器

<? 
if(preg_match('/android.+opera m(ob|in)i/i',$_SERVER['HTTP_USER_AGENT'])) 
header('Location: http://'); 

或者尝试使用这个PHP库

http://mobiledetect.net/

+0

我更新了我的答案 – Mostafa