我怎么知道用户是否从智能手机(尤其是iPhone和Android)进入我的网站?
我想将用户重定向到专门的网站,因此 PHP 检测和 htaccess 检测都很好。
更具体地说,该用户将来自 AdWords 广告系列。 AdWords是否会在网址上添加一些内容,因为这可以提供帮助?
答案 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');
}