0

回复:主页 = http://mobiledetect.net/
回复 :此脚本 = 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脚本中,数组是“受保护的”。我认为这也给我带来了问题(但我不确定)。

任何帮助表示赞赏。

4

2 回答 2

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}";
   } 
}

请重新排列您想要的代码。我给你一个例子。

于 2013-07-29T13:30:17.697 回答
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;
    }
}
于 2013-07-29T13:31:35.933 回答