2014-07-23 38 views
0

我制作了一个模板引擎,它使用file_get_contents()来获取页面的内容,然后用它的值替换它找到的任何键。file_get_contents不执行

这不是一个问题,但什么是一个问题是,它使页面新的输出,所以它是这样的

$output = str_replace($key, $replace, $output); return $output; 

唯一的问题是,在新的输出,PHP代码显示在源代码中,但未运行。有没有什么办法解决这一问题?

+0

尝试使用[EVAL(http://php.net/manual/en/function.eval.php) –

+0

我KNW这不是答案,但是,如果你试图做一个模板引擎...使用像https://github.com/bobthecow/mustache.php模板引擎:) –

+0

我试图让我自己,因为它是一个对我来说有轻微的挑战,但模板引擎部分不是我猜测的全部问题。 – user3867184

回答

2

一旦你使用你的代码file_get_contents()

$code = file_get_contents("page.php"); 

你做,你需要在变量$code这是一个字符串,那么如果代码以你这样做

eval($code); 

做的工作html代码,它有一些php代码里面,试试这个

eval(" ?> " . $code . " <?php "); 

我必须告诉你,这不是一个好的解决方案,eval是在php上使用最危险的函数。

+0

感谢您使用eval后,我得到这个错误“解析错误:语法错误,意外'<'在C:\ xampp \ htdocs \ hk \ cores \ core.template_engine.php(62):eval()'d代码在第1行“ – user3867184

+0

这意味着你作为'eval'函数参数传递的代码是不正确的 – Khalid

+0

我不是说在这里听起来像一个完整的'noob',但我不确定如何做到这一点,我从来没有使用eval,所以我不知道如何使用它,我真的从来没有找到一个用户。 – user3867184

2

您可以使用PHP eval功能来运行一个字符串作为PHP代码

$output = str_replace($key, $replace, $output); return $output; 
eval($output);