gpt4 book ai didi

php - PHP 中的超轻型模板系统,不允许模板内的 php 代码或使用 eval

转载 作者:IT王子 更新时间:2023-10-28 23:59:28 26 4
gpt4 key购买 nike

我正在寻找一个非常基本的 PHP 模板系统。现在我正在使用:

/**
* Renders a single line. Looks for {{ var }}
*
* @param string $string
* @param array $parameters
*
* @return string
*/
function renderString($string, array $parameters)
{
$replacer = function ($match) use ($parameters)
{
return isset($parameters[$match[1]]) ? $parameters[$match[1]] : $match[0];
};

return preg_replace_callback('/{{\s*(.+?)\s*}}/', $replacer, $string);
}

(从这里开始:PHP - Extremely light templating system)

但我只能分配和显示变量。我还需要一种方法来使用 IF 和循环数组等条件。

我找到了 Rain TPL - http://www.raintpl.com/Quick-Start/#if - 这与我正在寻找的非常接近,但有几件事我不喜欢它:

  • 它允许编写模板的人运行 PHP 函数(在 IF 条件内)。
  • 它写入缓存和 php 文件,这是我不想要的

那么,有没有类似的东西,但更“基本”、更严格、更安全?

最佳答案

Twig可能适合你。

它可以执行条件,并且具有针对不受信任代码的沙箱模式。

它进行编译和缓存,但似乎可以关闭。

关于php - PHP 中的超轻型模板系统,不允许模板内的 php 代码或使用 eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com