繁体   English   中英

PHP使用{{name}}在HTML中回显

[英]PHP use {{name}} to echo in HTML

我在某些脚本中看到过,它们使用{{}}在HTML内部进行回显,我认为它看起来更干净!

因此,例如,我现在有:

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

并在标题中显示问候,但是我想要的是:

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

我怎样才能做到这一点?

在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]] ))替换定义。 这就是模板引擎通常的工作方式。

您可能已经看到它是模板引擎,请在此处查看树枝: http : //twig.sensiolabs.org/

这是文档: http : //twig.sensiolabs.org/documentation

安装方法如下: http : //twig.sensiolabs.org/doc/intro.html#installation

或AngularJS:

这是链接: https : //angularjs.org/

我已经成功使用了[Dust.js](www.dustjs.com),就像在我的PHP项目中模板化javascript引擎一样。 Dustjs是一个很好的框架,主要是如果您需要使用JSON从REST来源获取一些资源。 DustJs旨在在服务器和客户端浏览器上异步运行。 这时已选择了最后一个选项。 DustJs可以使用Partials-可以包含其他模板的模板。

Dustjs能够导航到JSON结构循环并搜索KEYS以获取数据,从而简化了渲染工作并取消了用户界面数据的耦合。

DustJs由Linkedin团队维护,并在主要站点上广泛采用。

试试看。 http://www.dustjs.com/guides/getting-started/开始。

干杯。

使用具有模板引擎的php框架
像laravel(叶片模板引擎)

https://laravel.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM