preg_replace_callback 多行时不匹配
preg_replace_callback is not matching when multiline
您好,我有以下 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";
}}'
我没有得到转储结果,因为它不匹配
谁能帮帮我
使用强制点匹配换行符的 s
修饰符:
preg_replace_callback('/\{\{(.*?)\}\}/s', function($match) {
echo "<pre>";
var_dump($match);
echo "</pre>";
}, $string);
您好,我有以下 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";
}}'
我没有得到转储结果,因为它不匹配
谁能帮帮我
使用强制点匹配换行符的 s
修饰符:
preg_replace_callback('/\{\{(.*?)\}\}/s', function($match) {
echo "<pre>";
var_dump($match);
echo "</pre>";
}, $string);