Re: PHP function inside a regex - possible?

From: Date: Thu, 01 Jun 2000 17:32:21 +0000
Subject: Re: PHP function inside a regex - possible?
Groups: php.general 
Request: Send a blank email to php-general+get-839@lists.php.net to get a copy of this message
Zak McGregor wrote: > In php 3.x, no. In php 4.x try: > preg_replace("/<B>(.*)?<\/B>/", "<A > > HREF=\"whatever.php3?search=".urlencode('\\1')."\">".'\\1'."<\/A>"); > I'm using PHP4. I don't understand how that could work, how will it know what '\\1' is in the urlencode() ? The function has not even been entered at that point, so surely urlencode('\\1') will just equate literally to '\\1' urlencode()ed. Anyway, I tried this little example as a starting point to build up to the full thing eventually: $text = "Turn <B>bold</B> to a link"; $newtext = preg_replace( "/<B>(.*)?<\/B>/e", "<A href=\\1><B>\\1</B></A>", $text ); echo "\$text = $text<BR>"; echo "\$newtext = $newtext<BR>"; Please try this example, and you'll see it doesn't work. Can you see what's wrong with it? Also, is question mark (?) needed? In Perl, I use $1 for a back-reference, is \\1 the PCRE equivalent? thanks, - Kev

« previous php.general (#839) next »