我在一些脚本中看到过,他们使用{{}}来回显HTML内部,我觉得它看起来更干净!
所以,例如我现在有:
<?php $hi = "hello"; ?>
<html>
<title><?php echo $hi; ?></title>
并且会在标题中显示hello,但我想要的是:
<?php $hi = "hello"; ?>
<html>
<title>{{hi}}</title>
我该怎么做?
答案 0 :(得分:2)
在PHP中,您无法获取变量名称(除非使用不可靠的hacky方法)。但正如@samayo所提到的,这通常由模板引擎处理。
如果您想自己管理,可以执行以下操作:
$array = [
'tag' => 'a',
'text' => 'b'
];
$html = '<html>
{{tag}}
<body>
{{text}}
</body>
</html>';
现在您可以使用几种方法来替换它,通常由正则表达式完成:
preg_match_all("/.*({{(.*)}})/", $html, $result);
对外输出:
$result = array(
0 => array(
0 => '{{tag}}'
1 => '{{text}}'
)
1 => array(
0 => '{{tag}}'
1 => '{{text}}'
)
2 => array(
0 => 'tag'
1 => 'text'
)
)
您也可以使用preg_replace()
直接替换数据有了这个,你就拥有了替换文本所需的所有数据。
$result[2][0]
指的是$array[key]
($array[$result[2][0]]
))替换定义。
这就是模板引擎通常的工作方式。
答案 1 :(得分:1)
您可能已经看到它是一个模板引擎,请看一下这里的树枝:http://twig.sensiolabs.org/
以下是文档: http://twig.sensiolabs.org/documentation
以下是如何安装它的方法: http://twig.sensiolabs.org/doc/intro.html#installation
或AngularJS:
这是一个链接:https://angularjs.org/
答案 2 :(得分:1)
我已成功使用[Dust.js](www.dustjs.com)在我的PHP项目中模板化javascript引擎。 Dustjs是一个很好的框架,主要是如果您需要使用JSON的REST源代码中的一些资源。 DustJs设计为在服务器和客户端浏览器上异步运行。这时候已经选择了最后一个选项。 DustJs可以使用Partials - 可以包含其他模板的模板。
Dustjs能够导航到您的JSON结构,循环并搜索KEYS以获取数据,从而简化渲染工作并解耦用户界面的数据。
DustJs由Linkedin Team维护,主要在网站上采用。
试试他。从http://www.dustjs.com/guides/getting-started/开始。
干杯。
答案 3 :(得分:1)
使用具有模板引擎的php框架 像laravel(刀片模板引擎)