PHP7 preg_replace_callback()替代preg_replace()

PHP7 不再支持 preg_replace() 的 \e 规则 (PREG_REPLACE_EVAL),执行过程会直接抛出异常

解决办法:使用preg_replace_callback()来代替

PHP5中的写法:

$template = preg_replace ( "/\<\!\-\-\{date\((.+?)\)\}\-\-\>/ie", "Template::datetags('\\1')", $template );

PHP7中的写法:

$template =  preg_replace_callback("/\<\!\-\-\{date\((.+?)\)\}\-\-\>/", function($r) { return Template::datetags($r[1]); }, $template);

发表评论