0

我如何知道用户是否通过智能手机(尤其是 iPhone 和 Android)访问了我的网站?

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

更具体地说,用户将来自AdWords广告系列。AdWords 是否在 URL 中添加一些相关的内容会有所帮助?

4

3 回答 3

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,但我发现此页面详细介绍了向 URL 添加 GET 变量:在链接中使用 AdWords 动态参数

于 2012-11-19T09:15:42.400 回答
3

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

http://www.useragentstring.com/

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

现在,当然,这可以检测到任何移动设备、智能手机或平板电脑,所以它可能不适合您的情况,但它似乎是我作为 Web 开发人员的最大区别——是我在现代“移动”浏览器上的用户,或者它们在 PODB(普通的旧桌面浏览器)上?:)

于 2013-07-31T15:59:19.873 回答
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');
}
于 2012-11-19T09:19:28.713 回答