如何检测用户来自智能手机

时间:2012-11-19 09:05:23

标签: php .htaccess user-agent smartphone google-adwords

我怎么知道用户是否从智能手机(尤其是iPhone和Android)进入我的网站?

我想将用户重定向到专门的网站,因此 PHP 检测和 htaccess 检测都很好。

更具体地说,该用户将来自 AdWords 广告系列。 AdWords是否会在网址上添加一些内容,因为这可以提供帮助?

3 个答案:

答案 0 :(得分:3)

我一直在用这个项目。我相信我大约一年前在stackoverflow.com上找到了这段代码。您可以将if语句修改为仅重定向特定设备或重定向到每个设备的特定站点。这是一个全部捕获并将任何移动设备重定向到http://www.example.com/mobile页面。我将它放在每个页面的标题中调用的函数中(因为我拥有的每个页面都包含相同的header.php)。

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$ipad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad");

if($iphone || $android || $palmpre || $ipod || $berry || $ipad == true) 
{ 
    header('Location: mobile');
}

我从未使用过AdWords,但我发现此页面详细说明了向网址添加GET变量:Using AdWords Dynamic Parameters in Links

答案 1 :(得分:3)

我查看了用户代理字符串:

http://www.useragentstring.com/

老实说,最简单的方法似乎是检查$ _SERVER ['HTTP_USER_AGENT']是否包含“Mobile”一词。

现在,已经获得批准,它可以检测任何移动设备,智能手机或平板电脑,因此它可能不适合您的情况,但它似乎是我作为Web开发人员的最大区别 - 是我现代的用户“移动“浏览器,还是他们在PODB(普通的旧桌面浏览器)? :)

答案 2 :(得分:1)

此信息已在$ _SERVER超全局中。您所要做的就是在Iphone/Ipdad etc

中找到$_SERVER['HTTP_USER_AGENT']

只需定义一些将为您完成的功能,然后重定向到特定页面,就像这样(这是程序方法):

<?php

$mobile = array('Iphone', 'Androind'); //etc add more


//We won't use global keyword
//We would pass an array as arg instead
function isMobile(array $mobile){
  foreach($mobile as $agent){

     if ( strpos($_SERVER['HTTP_USER_AGENT'], $agent) ){
         //mobile detected
         //or return its name, do it the way you like
         return true;
     }
  }
}


//Now simply check then do redirect, like this
if ( isMobile($mobile) ){

   header('Location: /some-mobile-page.php')

} else {
  header('Location: /regular-page.php');
}