Re: preg_replace

From: Date: Sun, 16 Jun 2002 18:34:43 +0000
Subject: Re: preg_replace
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-102411@lists.php.net to get a copy of this message
In article <3D0CC9BB.1080302@trini0.org>, gsam@trini0.org (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

« previous php.general (#102411) next »