PHP使用{{name}}来回显HTML

时间:2016-03-26 18:27:38

标签: php html

我在一些脚本中看到过,他们使用{{}}来回显HTML内部,我觉得它看起来更干净!

所以,例如我现在有:

<?php $hi = "hello"; ?>
<html>
<title><?php echo $hi; ?></title>

并且会在标题中显示hello,但我想要的是:

<?php $hi = "hello"; ?>
<html>
<title>{{hi}}</title>

我该怎么做?

4 个答案:

答案 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(刀片模板引擎)

https://laravel.com