Re: preg_replace and e option (bug or feature?)

From: Date: Fri, 05 May 2000 13:46:31 +0000
Subject: Re: preg_replace and e option (bug or feature?)
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-18451@lists.php.net to get a copy of this message
On Fri, 05 May 2000, Wico de Leeuw wrote: > take this text: > > $text = "#!this 'is' a \"test\" :)!#"; > > say i want everyting between #! and !# feed and replace to addslashes > > you sould say i do : > > $new_text = preg_replace("'#!(.*?)!#'ie", > 'Addslashes("\\1")', $text); > > but because of the " and the ' this will fall due the eval of preg_replace > resulting in a: > Parse error: parse error in Unknown on line 0 > > i suggest the founded strings in the regular can be called like this to > overcome this problem: > $new_text = preg_replace("'#!(.*?)!#'ie", 'Addslashes($1)', > $text); > > Anyone has comment on this? Yes, you should first escape ' or " in your original text with one preg_replace() and then use another with /e modifier to feed it to your function. -Andrei * The future has arrived, it's just not evenly distributed. -W. Gibson *

« previous php.dev (#18451) next »