Reputation: 37377
Is it possible to use strtolower
in the substitution part of preg_replace
?
This isn’t working:
preg_replace('/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org|tv|biz)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/i', '<a href="http://www.'.strtolower('$3').'" target="_blank">'.strtolower('$3').'</a>', $d);
Upvotes: 2
Views: 2291
Reputation: 31508
It is possible, yes. Have a look at the e
modifier (Example #4):
preg_replace('/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org|tv|biz)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie', "'<a href=\"http://www.'.strtolower('$3').'\" target=\"_blank\">'.strtolower('$3').'</a>'", $d);
(Untested, the number of escaping backslashes may be wrong.)
Upvotes: 4
Reputation: 31834
I favor using preg_replace_callback() over using the e(eval) modifier. I feel the code is cleaner, and has less room for error.
Upvotes: 2