是否可以在strtolower
?
preg_replace
这不起作用:
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);
答案 0 :(得分:4)
有可能,是的。查看e
修饰符(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);
(未经测试,转义反斜杠的数量可能有误。)
答案 1 :(得分:2)
我赞成使用preg_replace_callback()而不是使用e(eval)修饰符。我觉得代码更干净,错误的余地更小。