当前位置: 首页 > 知识库问答 >
问题:

如何编写PHP模板引擎?

阎兴为
2023-03-14

我能用Eval让它工作...但我们都知道eval是邪恶的。

$body = preg_replace('/{if ([^{\|}]+)}/i', '<?php if(isset(\$tokens[\'$1\'])):?>', $body);
$body = preg_replace('/{endif}/i', '<?php endif;?>', $body);

有人能给我指点一下这方面的教程吗?除了简单的代币替换之外,我似乎找不到任何东西。

共有1个答案

汪跃
2023-03-14

正如上面所建议的,我将使用Mustache.js,它应该可以完成您所需要的一切。如果您想要的只是“令牌替换和条件逻辑”,那么可以使用Mustache提供这两者:

令牌替换

Hello {{first_name}}

条件逻辑

function( view ){

   if ( logged_in ) {
     var user = {
       first_name: "Jane",
       last_name: "Doe"
     };
   } else {
     var user = {
       first_name: "Buddy"
     };
   }

   // more template stuff...

}
 类似资料:
  • 我正在为一个在Laravel中完成的站点编写代码,我知道不建议在Blade模板中编写PHP代码,但在这个例子中,我的可用时间有限。 中间的PHP代码不起作用?

  • 我有一些我需要的特定代码,为了能够有某些我不想每次都写的I/O东西,我只想能够添加一个Java类,这样它就已经有了那些代码,我试着做了: 基本上这个东西需要在xml中,但我不知道如何正确地编写它,我以为到处都写${filename}就可以了,但它不起作用。总而言之,我希望文件的名称写在我写“${filename}”的地方,我该怎么做呢?

  • 费尔模板引擎是一个基于PHP的高效的PHP模板引擎,主要对于PHP程序的方面快速开发而设计,这意味着PHP代码与HTML是分开的,让程序员有足够的空间发挥编写程序,让网页设计师轻松维护模板代码,而不需要维护PHP与HTML混合的复杂代码,也不需要掌握PHP技术,从而促进程序员和设计师的快速开发/部署,费尔模板引擎快速且易于维护,重点是永久免费开源

  • 使用,我在基本模板中定义了一个,其中包含默认内容。在某些情况下,我希望这个块为空,所以我想我可以重新定义它的名称,并使它不包含以下内容: 不知何故,Go似乎认为这个定义是“零”,并且仍然会呈现默认内容,除非我将任何非空白内容放入定义中。 我在Golang repo上发现了这个问题,它在一个游乐场示例中很好地描述了同样的事情: 奇怪的是,这个问题提到它是固定的(如果我理解正确的话,它在1.8.1中着

  • 本文向大家介绍common-lisp 反引号-为宏编写代码模板,包括了common-lisp 反引号-为宏编写代码模板的使用技巧和注意事项,需要的朋友参考一下 示例 宏返回代码。由于Lisp中的代码由列表组成,因此可以使用常规列表操作功能来生成它。 这通常很难阅读,尤其是在较长的宏中。Backquote阅读器宏允许编写通过选择性评估元素填充的引用模板。 这个版本看起来几乎像常规代码。逗号用于评估F

  • 英文原文: http://emberjs.com/guides/templates/writing-helpers/ 有时,你想在程序里多次使用同一段 HTML 代码。这种情况下,你就可以自定义一个任何 Handlebars 模板都能调用的助手方法。 比如,你频繁地用一个拥有 class(译注:这个class为css中的class,非JavaScript中的类) 的 <span>来包裹特定的值。你