PHP preg_replace_callback

时间:2012-06-13 14:04:37

标签: php preg-replace preg-replace-callback

我将此标记放入我的html文件中:

    {{block:my_test_block}} 
{{news:my_test_block2}}

我需要用db,my aproach:

中的内容解析并替换此标记
     ob_start();
     require_once('file.php');
     $template = ob_get_contents();
     ob_end_clean();

      $line = preg_replace_callback('/{(\w+)}/' , "parseTag" , $template);

function parseTag($matches){
   //here switch for block, news, 
}

这是正确的方法吗? 感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用

'/{{(.+):(.+)}}/'

所以在$ matches [1]中你会看到块或新闻。

您的脚本应该是那样的

$line = preg_replace_callback('/{{(.+):(.+)}}/' , "parseTag" , $template);

function parseTag($matches){
   if($matches[1] == 'block'){
        $return = 'Its Blocked';
   }elseif($matches[1] == 'news'){
        $return = 'Great news';
   }else{
        $return = 'Ops...';
   }
   return $return;
}