我制作了一个模板引擎,它使用file_get_contents()
来获取页面的内容,然后用它的值替换它找到的任何键。file_get_contents不执行
这不是一个问题,但什么是一个问题是,它使页面新的输出,所以它是这样的
$output = str_replace($key, $replace, $output); return $output;
唯一的问题是,在新的输出,PHP代码显示在源代码中,但未运行。有没有什么办法解决这一问题?
我制作了一个模板引擎,它使用file_get_contents()
来获取页面的内容,然后用它的值替换它找到的任何键。file_get_contents不执行
这不是一个问题,但什么是一个问题是,它使页面新的输出,所以它是这样的
$output = str_replace($key, $replace, $output); return $output;
唯一的问题是,在新的输出,PHP代码显示在源代码中,但未运行。有没有什么办法解决这一问题?
一旦你使用你的代码file_get_contents()
$code = file_get_contents("page.php");
你做,你需要在变量$code
这是一个字符串,那么如果代码以你这样做
eval($code);
做的工作html代码,它有一些php代码里面,试试这个
eval(" ?> " . $code . " <?php ");
我必须告诉你,这不是一个好的解决方案,eval是在php上使用最危险的函数。
感谢您使用eval后,我得到这个错误“解析错误:语法错误,意外'<'在C:\ xampp \ htdocs \ hk \ cores \ core.template_engine.php(62):eval()'d代码在第1行“ – user3867184
这意味着你作为'eval'函数参数传递的代码是不正确的 – Khalid
我不是说在这里听起来像一个完整的'noob',但我不确定如何做到这一点,我从来没有使用eval,所以我不知道如何使用它,我真的从来没有找到一个用户。 – user3867184
您可以使用PHP eval功能来运行一个字符串作为PHP代码
$output = str_replace($key, $replace, $output); return $output;
eval($output);
尝试使用[EVAL(http://php.net/manual/en/function.eval.php) –
我KNW这不是答案,但是,如果你试图做一个模板引擎...使用像https://github.com/bobthecow/mustache.php模板引擎:) –
我试图让我自己,因为它是一个对我来说有轻微的挑战,但模板引擎部分不是我猜测的全部问题。 – user3867184