0

我想将字符串变量中的每个 "../" 和 "script/uploaded" 替换为 "" !

我有一个这样的功能:

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

但它向我展示了这个错误

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

我的图案有什么问题?!

4

2 回答 2

2

您的格式错误,您不需要 preg_replace 。采用str_replace

public function mypregReplace($v) 
{                          
   return str_replace(
    array("script/uploaded"  , "../"),
    '',
    $v); 
}
于 2012-04-06T17:23:05.800 回答
1

你的数组错了。第一个数组应该只包含模式,第二个应该是替换值。你要:

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); 
}
于 2012-04-06T17:22:45.753 回答