Re: PHP function inside a regex - possible?
| From: | kev | 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