2012-04-06 42 views
0

我想將我的字符串變量中的每個「../」和「script/uploaded」替換爲「」!preg_replace()[function.preg-replace]:分隔符不能是字母數字或反斜槓

我有一個功能是這樣的:

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

但昭和我這個錯誤

的preg_replace()[function.preg替換]:分隔符不能是字母數字 或反斜線

我的圖案有什麼問題?

回答

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); 
} 
2

你的格式是錯誤的,你不需要preg_replace這個。使用str_replace

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