多行时preg_replace_callback不匹配

时间:2015-05-28 10:26:07

标签: php preg-match

我有以下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

1 个答案:

答案 0 :(得分:3)

使用s修饰符强制点匹配换行符:

preg_replace_callback('/\{\{(.*?)\}\}/s', function($match) {
    echo "<pre>";
        var_dump($match);
    echo "</pre>";  
}, $string);
相关问题