【发布时间】:2012-03-13 01:57:15
【问题描述】:
有没有什么方法可以在用户使用 iPhone 时将用户重定向到子域,然后在他使用 android 时重定向到不同的子域,这都是使用 php?
【问题讨论】:
有没有什么方法可以在用户使用 iPhone 时将用户重定向到子域,然后在他使用 android 时重定向到不同的子域,这都是使用 php?
【问题讨论】:
是的,您可以使用 $_SERVER 全局数组来检测有关请求的各种信息,例如请求标头。特别是,您可以解析出用户代理字符串以确定连接到您的 PHP 应用程序的浏览器并根据此信息进行重定向。
PHP get_browser 函数文档here 有一个很好的例子:
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
$browser = get_browser(null, true);
print_r($browser);
?>
使用上述方法,您可以制作自己的函数,例如 isAndroid 或 isIphone,以通过用户代理字符串检测移动设备。
function isAndroid()
{
if(preg_match('/android/i', $browser))
return true;
return false;
}
function isIphone()
{
if(preg_match('/iphone/i', $browser))
return true;
return false;
}
作为参考,iPhone 用户代理字符串如下所示:
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a
Android 的用户代理字符串如下所示:
Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
希望这会有所帮助!
【讨论】:
我相信您正在寻找 php 的 get_browser 和 $_SERVER。
其中一个或两个都将帮助您确定访问者正在使用的浏览器。从那里,只需发送带有适当位置的header 即可。
【讨论】: