PHP - 显示此'Detect'数组的结果?

时间:2013-07-29 13:24:17

标签: php arrays mobile detect

re:首页网站= http://mobiledetect.net/
re:这个脚本= Mobile_Detect.php
在此处下载脚本:https://github.com/serbanghita/Mobile-Detect

此脚本可以完美地检测用户设备的不同参数。

但是,这就是我目前检测这些参数的方式:

// each part of the IF statement is hard-coded = not the way to do this
if($detect->isiOS()){
    $usingOS = 'iOS';
}
if($detect->isAndroidOS()){
    $usingOS = 'Android';
}
echo 'Your OS is: '.$usingOS;

我的目标是使用FOREACH通过此脚本中的各种数组进行迭代,以确定用户设备的参数。我需要“($ detect-> isXXXXOS())”是动态的......(这将基于KEY)。结果将显示KEY。但检测将基于VALUE。

此外,由于我的网页使用REQUIRE来访问此脚本...在 Mobile_Script.php 脚本中,数组是“受保护的”。我认为这也引起了我的问题(但我不确定)。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

foreach循环中,您可以调用dynamic method,如下所示:

$array = array('Android','Windows','Linux','Mac');

foreach( $array as $value) {
   $method = "is{$value}OS";
   if($detect->$method()) {
      $os = $value;
      echo "Your OS is : {$os}";
   } 
}

请重新安排您想要的代码。我举个例子。

答案 1 :(得分:1)

你可以尝试使用这样的东西:

$OSList = $detect->getOperatingSystems();// will give array of operating system name => match params 

foreach($OSList as $os_name=>$os_params/*unused*/)
{
    $method = 'is'.$os_name;
    if($detect->$method())
    {
        $usingOS = $os_name;
    }
}