preg_match()失败,包含斜杠的字符串

时间:2016-01-07 22:37:56

标签: php regex string preg-match

我有这样的功能:

class My_Extension_Model_Subscriber extends Mage_Newsletter_Model Subscriber
{
    public function subscribe($email)
    {
       ...
    }
}

然后我就像使用它一样:

function in_array_r($item , $array){
        return preg_match('/"'.$item.'"/i' , json_encode($array));
}

除非if(in_array_r($row['name'], $items_array)){ // something.. } 包含$row['name']之类的内容,否则它会起作用,在这种情况下它表示它无法在数组中找到它,即使它存在。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

这是因为输入中的斜杠:blah / blah / something被视为正则表达式的分隔符。

要解决此问题,您可以使用preg_quote()转义输入,例如

function in_array_r($item , $array){
    return preg_match('/"'. preg_quote($item, "/") .'"/i' , json_encode($array));
}
相关问题