PHP找到匹配eregi?

时间:2013-05-22 18:34:36

标签: php eregi

我这里有这段代码

$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语句中,因此是break。

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

我的if statment返回Unknown !!我的查找字符串((Android)&&(Tablet))有什么问题,或者eregi不是我想要使用的?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

if (!preg_match("/Nexus 7|Andriod|Tablet/", $_SERVER['HTTP_USER_AGENT']) $os = "unknown";