我想将我的字符串变量中的每个“../”和“script / uploaded”替换为“”!
我有一个这样的功能:
public function mypregReplace($v)
{
return preg_replace(
array("%script/uploaded%" , ""),
array( "[\.\./]" , ""),
$v);
}
但是它显示了这个错误
preg_replace()[function.preg-replace]:分隔符不能是
中的字母数字或反斜杠
我的模式出了什么问题?!
答案 0 :(得分:2)
你的格式错了,你不需要preg_replace。使用str_replace
public function mypregReplace($v)
{
return str_replace(
array("script/uploaded" , "../"),
'',
$v);
}
答案 1 :(得分: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);
}