0

文字列変数のすべての "../" と "script/uploaded" を "" に置き換えたい!

私はこのような1つの機能を持っています:

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

配列が間違っています。最初の配列はパターンのみで構成し、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); 
}
于 2012-04-06T17:22:45.753 に答える