2012-04-06 5 views
0

Ich möchte jedes "../" und "script/uploaded" in meiner String-Variable zu "" ersetzen!preg_replace() [function.preg-replace]: Trennzeichen darf nicht alphanumerisch oder umgekehrter Schrägstrich sein in

Ich habe eine Funktion wie folgt aus:

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

aber es Showa mir diesen Fehler

preg_replace() [function.preg Ersetzen]: Delimiter darf nicht alphanumerische oder Backslash sein in

Was ist falsch an meinem Muster ?!

Antwort

1

Sie haben Ihr Array falsch. Das erste Array sollte nur aus Mustern bestehen und das zweite sollte die Ersatzwerte sein. Sie wollen:

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

Welche weiter vereinfacht werden kann:

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

sollten Sie str_replace dafür verwenden, jedoch. Sie brauchen keine regulären Ausdrücke, um exakte Zeichenfolgen zu finden:

public function mypregReplace($v) 
{       
    return str_replace(array('script/uploaded', '../'), '', $v); 
} 
2

Ihr Format ist falsch, und Sie brauchen preg_replace dafür nicht. Verwenden Sie str_replace

public function mypregReplace($v) 
{       
    return str_replace(
    array("script/uploaded" , "../"), 
    '', 
    $v); 
} 
Verwandte Themen