In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] (Gerard Samuel) 
wrote:

> When you think you got it, you don't get it..
> Im trying to scan the link for =A-Z0-9_=, dump the '=' and evaluate the 
> remainder as a defined constant.
> Yes its funny looking, but if I could get this going Im golden.
> $bar is always returned with '=_L_OL_HERE=' as the link and not 'here' 
> as it supposed to be.
> Any help would be appreciated.
> Thanks
> 
> 
> <?php
> define('_L_OL_HERE', 'here');
> $foo = '<a href="there.com">=_L_OL_HERE=</a>';
> $bar = preg_replace('/(=)([A-Z0-9_])(=)/e', ' . constant("$2") . ', $foo);
> 
> echo $bar;
> 
> ?>

You're trying to match one or more characters in the class, so add a "+".  
And you're not concatenating the expression 'constant("$2")' with anything, 
so lose the extra periods.  Parentheses aren't needed around the equals 
signs, so you might as well drop those too.  Ex:

preg_replace('/=([A-Z0-9_]+)=/e', 'constant("$1")', $foo);

-- 
CC

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

Reply via email to