我有以下preg_replace_callback,我在我的模板系统中使用它来执行 {{ php代码到这里}}
内的代码preg_replace_callback('/\{\{(.*?)\}\}/', function($match) {
echo "<pre>";
var_dump($match);
echo "</pre>";
}, $string);
代码是单行时
$string = '{{ echo "Hello"; }}'
工作正常,转储结果为
array(2) {
[0]=>
string(19) "{{ echo "Hello"; }}"
[1]=>
string(15) " echo "Hello"; "
}
但代码是多行的
$string = '{{
echo "Hello";
echo " My name is Ntan";
}}'
我没有转储结果,因为它不匹配
任何人都可以帮助我PLZ
答案 0 :(得分:3)
使用s
修饰符强制点匹配换行符:
preg_replace_callback('/\{\{(.*?)\}\}/s', function($match) {
echo "<pre>";
var_dump($match);
echo "</pre>";
}, $string);