preg_replace() [function.preg-replace]:分隔符不能是字母数字或反斜杠


preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in

我想替换每个"../"和"脚本/上传"在我的字符串变量中为 " !

我有一个这样的功能:

public function mypregReplace($v) 
{                          
    return preg_replace(
        array("%script/uploaded%"  , ""),
        array( "['.'./]"  ,  ""),
        $v); 
}

但它向我展示了这个错误

preg_replace() [function.preg-replace]:分隔符不得为 字母数字或反斜杠

我的模式出了什么问题?!

你的格式是错误的,你不需要preg_replace。使用str_replace

public function mypregReplace($v) 
{                          
   return str_replace(
    array("script/uploaded"  , "../"),
    '',
    $v); 
}

你的数组错了。第一个数组应仅包含模式,第二个数组应为替换值。你想要:

public function mypregReplace($v) 
{                          
    return preg_replace(
        array("%script/uploaded%", "%'.'./%"),
        array("",  ""),
        $v); 
}

可以进一步简化为:

public function mypregReplace($v) 
{                          
    return preg_replace(
        array('%script/uploaded%', '%'.'./%'),
        '',
        $v); 
}

但是,您应该为此使用str_replace。您不需要正则表达式来匹配确切的字符串:

public function mypregReplace($v) 
{                          
    return str_replace(array('script/uploaded', '../'), '', $v); 
}