In PHP 4.0.5 and later, every parameter to str_replace() can be an array.If search and
 replace are arrays, then str_replace() takes a value from each array and uses them to 
do search and replace on
subject.  If replace has fewer values than search, then an empty string is used for 
the rest of replacement values.  If search is an
array and replace is a string; then this replacement string is used for every value of 
search.  The converse would not make sense,
though.

BTW /abc/ and ~abc~ are equivalent regexes. So get a character which will not occur in 
the string and put in the front and the end.

Regards,
Andrey Hristov

----- Original Message -----
From: "Richard Davey" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, March 12, 2002 3:57 PM
Subject: [PHP] Is there a faster way to escape special characters in a regex?


> Hi all,
>
> At the moment I'm doing this to escape all "special" regular expression
> characters from my regex string:
>
>    $badwordtest = str_replace("/","",$badwordtest);
>    $badwordtest = str_replace("\\","",$badwordtest);
>    $badwordtest = str_replace("^","\^",$badwordtest);
>    $badwordtest = str_replace(".","\.",$badwordtest);
>    $badwordtest = str_replace("[","\[",$badwordtest);
>    $badwordtest = str_replace("$","\$",$badwordtest);
>    $badwordtest = str_replace("(","\(",$badwordtest);
>    $badwordtest = str_replace(")","\)",$badwordtest);
>    $badwordtest = str_replace("|","\|",$badwordtest);
>    $badwordtest = str_replace("*","\*",$badwordtest);
>    $badwordtest = str_replace("+","\+",$badwordtest);
>    $badwordtest = str_replace("?","\?",$badwordtest);
>    $badwordtest = str_replace("{","\{",$badwordtest);
>    $badwordtest = str_replace("}","\}",$badwordtest);
>    $badwordtest = str_replace("\\","\\",$badwordtest);
>    $badwordtest = "/" . $badwordtest . "/i";
>
>    if (preg_match($badwordtest,$word)) {
>     $directmatch = TRUE;
>    }
>
> Is there a way to either do this all in one go or even better, have the ereg
> itself ignore those characters if they are contained in the string? The idea
> is that I want to check a word for swearing by doing a direct comparison
> with a list of swear words, however the word I check could easily contain a
> special character so I need to escape it before the test commences.
>
> Suggestions very welcome!
>
> Cheers,
>
> Richard
> --
> Fatal Design
> http://www.fatal-design.com
> Atari / DarkBASIC / Coding / Since 1995
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to