从内容中搜索文本,并通过php脚本替换为PLUGIN

时间:2014-01-03 03:06:11

标签: php str-replace

我正在尝试使用str_replace为我自己的CMS构建类似wordpress的插件。因此,当用户将“[do_something]”之类的内容保存到页面内容中时,它将被预构建函数替换。

示例:

<?php function do_something() {
 // search database and display something
}

<?php
  echo str_replace("[do_something]","<?php do_something(); ?>",$page_content);
?>

然而,使用echo返回

"<?php do_something(); ?>"

作为文本而不是php脚本,无法执行。

有什么建议吗?

已更新

最后,我想出了这个:

function plugin($page_content){
$plugins = array(   
'[function1]' => 'function1();',
'[function2]' => 'fucntion2();'
);

foreach($plugins as $plugin => $function) {
  if (strpos($page_content, $plugin) !== false) {
    eval($function);
    break;
    }
}
}

:)

1 个答案:

答案 0 :(得分:1)

试试这个:

<?php
    eval(str_replace('[do_something]', 'do_something();', $page_content));
?>

但请记住,使用eval尤其是用户的输入是非常糟糕的做法。