2011-10-14 69 views
2

对于检测Internet Explorer,我使用他的行。使用PHP检测iOS版本

<?php if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { };?> 

如何检测的iOS 5

+0

退房:http://www.useragentstring.com/pages/Browserlist/用户代理字符串列表 – PeeHaa

回答

5

的HTTP_USER_AGENT将返回以下内容:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7 

如果你想检测的iOS 5,请执行以下操作:

<?php if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone OS 5_0') !== false) { };?> 
+0

我确信你是正确的。目前我无法测试它。谢谢 –

+0

出于好奇,如果我想检查多个用户代理,该怎么办 –

+0

@RobinKnight这就是为什么你应该使用'get_browser()' - 看我的答案... – DaveRandom

0

如果这是可能的,get_browser()将是做到这一点的方法。

但是,由于用户代理字符串很容易被欺骗,并且浏览器/操作系统列表是一个不断移动的目标,因此这绝不会100%可靠。为了完全起作用,您必须必须保持php_browscap.ini文件是最新的(请参阅关于链接手册页的说明)。

+0

你介意给我一些更详细的信息,关于我使用iOS寻找哪些用户代理的方法 –

+0

我不能,因为我没有iOS设备来测试。抱歉。你将不得不自己测试它(只是'var_dump(get_browser(null,true));') – DaveRandom

0

简易

<?php 
    $browser = get_browser(null, true); 
    echo $browser['platform']; 
?> 

文档说

注:

为了这个工作,在 php.ini里browscap配置必须指向正确的您的系统上的 browscap.ini文件的位置。

browscap.ini未与PHP捆绑在一起,但您可以在此处找到最新的» php_browscap.ini文件。

虽然browscap.ini包含许多浏览器的信息,但它依赖于 用户更新来保持数据库最新。该文件的格式是 相当不言自明。

6

我有一个类似的问题,但需要使用$ _SERVER ['HTTP_USER_AGENT']在iPhone和iPad中获取版本号。我想这是不完全可靠,但它的工作对我来说:

<?php 

$version = preg_replace("/(.*) OS ([0-9]*)_(.*)/","$2", $_SERVER['HTTP_USER_AGENT']); 

// for example you use it this way 

if ($version > 5){ 
// do something 
} 


?>