【问题标题】:Detect iOS version with PHP使用 PHP 检测 iOS 版本
【发布时间】:2011-12-07 18:34:20
【问题描述】:

为了检测 Internet Explorer,我使用了他的线路。

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

如何检测 iOS 5。

【问题讨论】:

标签: php ios5 browser-detection


【解决方案1】:

我遇到了类似的问题,但需要使用 $_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
}


?> 

【讨论】:

  • 我发现一些用户代理没有被正确检测到并返回为 Mac OS X 而不是 iPad iOS(用户代理检测可能需要更新)所以我使用了这个 preg_match 变体: preg_match( "/ (.*) OS ?X? ([0-9]*)_(.*)/", $user_agent, $matches );
【解决方案2】:

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) { };?>

【讨论】:

  • 我确定你是对的。我暂时无法测试它。谢谢
  • 出于好奇,如果我想检查多个用户代理怎么办
  • 如果你想检查多个用户代理,那么是的,get_browser() 是要走的路。只需密切注意有关保持 php_browscap.ini 更新的说明即可。
【解决方案3】:

如果可能的话,get_browser() 将是这样做的方式。

但是,由于 User-Agent 字符串很容易被欺骗,并且浏览器/操作系统列表是一个不断变化的目标,因此这永远不会 100% 可靠。为了让它完全起作用,您必须保持php_browscap.ini文件是最新的(参见链接手册页上的注释)。

【讨论】:

  • 您是否介意用我的 if else 等式提供更多详细信息,说明我在 iOS 中寻找什么用户代理
  • 我不能,因为我没有用于测试的 iOS 设备。对不起。你必须自己测试它(只是var_dump(get_browser(null,true));
【解决方案4】:

简单易行

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

文档说

注意:

为了使它起作用,您的 browscap 配置设置在 php.ini 必须指向 browscap.ini 文件的正确位置 你的系统。

browscap.ini 未与 PHP 捆绑,但您可能会找到最新的 » php_browscap.ini 文件在这里。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多