0

我这里有这段代码

$search = $_SERVER['HTTP_USER_AGENT'];

搜索返回Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0

这个发现在一个数组中

$find = '(Nexus 7) | ((Android) && (Tablet))';

此 if 语句位于 foreach 语句中,因此中断。

if(eregi($find, $search)) {
    break;
}else{
    $os = "Unknown";
}

我的 if 语句返回未知!我的查找字符串 ((Android) && (Tablet)) 有问题还是我不​​想使用 eregi?

4

2 回答 2

1

这可以使用strpos()if()测试来完成:

if ( false !== strpos( $search, 'Nexus 7' ) ||
     ( false !== strpos( $search, 'Android' ) && 
       false !== strpos( $search, 'Tablet' ) ) { ... }

请注意,!==此处必须使用“值和类型”测试 ( ),因为strpos如果在目标字符串的开头找到搜索词,则将返回“0”。

于 2013-05-22T18:50:55.117 回答
0
if (!preg_match("/Nexus 7|Andriod|Tablet/", $_SERVER['HTTP_USER_AGENT']) $os = "unknown";
于 2013-05-22T18:57:23.520 回答