我有这些代码:这个preg_replace命令有什么问题?
$string = 'Hello [*tt();*], how are you today?';
preg_match("/\[\*(.*?)\*\]/",$string,$match);
$func = $match[1];
$d = eval($func);
$newstring = preg_replace("/\[\*(.*?)\*\]/",$d,$string);
echo $newstring;
function tt() {
return 'test';
}
我想他们是从他们达到我的意思。我想替换tt();与其output.I预计它的工作,但tt();无(空字符串)替换。
哇,谢谢。为什么是eval坏?因为它可以运行一个文本为php代码?我认为当文本从用户获取时使用eval是不好的,但在我的情况下,文本是由管理员直接在数据库中定义的。 – 2011-02-15 07:10:27
更新我的回答,比“eval是坏”更多的信息:D – Jacob 2011-02-15 07:19:12
谢谢雅各布;) – 2011-02-15 07:59:39