如果我有这样的hello.php文件:
Hello, <?php echo $foo; ?>!
Run Code Online (Sandbox Code Playgroud)
我想在一些PHP代码中做这样的事情:
$text = renderPhpToString('hello.php', array('foo'=>'World'));
Run Code Online (Sandbox Code Playgroud)
并最终得到
$text == 'Hello, World!'
Run Code Online (Sandbox Code Playgroud)
这可能用标准的PHP 5吗?显然我想要更复杂的模板与循环等等..
Gum*_*mbo 37
你可以使用这样的函数:
function renderPhpToString($file, $vars=null)
{
if (is_array($vars) && !empty($vars)) {
extract($vars);
}
ob_start();
include $file;
return ob_get_clean();
}
Run Code Online (Sandbox Code Playgroud)
它使用输出缓冲区控制功能ob_start()来缓冲以下输出,直到它返回ob_get_clean().
编辑 确保验证传递给此函数的数据,以便$vars没有file可覆盖传递的$file参数值的元素.
| 归档时间: |
|
| 查看次数: |
14784 次 |
| 最近记录: |