2012-04-06 13 views
0

文字列変数の "../"と "script/uploaded"をすべて ""に置き換えます!preg_replace()[function.preg-replace]:区切り文字は英数字でもバックスラッシュでもかまいません

は、私は1つの関数のように持っている:

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

が、それは私にこのエラーが昭和

にpreg_replace()[function.preg-置き換える]:デリミタは 英数字またはバックスラッシュではあってはなりません

私のパターンには何が間違っていますか?

答えて

1

あなたの配列は間違っています。最初の配列はパターンのみで構成され、2番目の配列は置換値でなければなりません。あなたが欲しい:

をさらに簡素化することができる
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); 
}