{%%}在html中意味着什么

时间:2013-06-01 00:41:53

标签: php html

我认为它用于引用php的东西,但我不确定。我在html文件中看到一些这样写的内容:

{% if ban.reason %}
    <p class="reason">
        {{ ban.reason }}
    </p>
{% endif %}

2 个答案:

答案 0 :(得分:15)

这是模板引擎系统,其语法基于jinja。另一个代码示例:

{% extends "layout.html" %}

{% block body %}
    <ul>
        {% for user in users %}
            <li><a href="{{ user.url }}">{{ user.username }}</a></li>
        {% endfor %}
    </ul>
{% endblock %}
来自维基百科的

使用模板引擎的好处包括:

  • 鼓励将源代码组织到操作不同的层中(参见例如MVC)
  • 通过减少不必要的努力再现来提高生产力
  • 通过允许基于技能组合(例如,艺术与技术)分离工作来加强团队合作

典型特征

模板引擎通常包含大多数高级编程语言共有的功能,重点是处理纯文本的功能。 这些功能包括:

  • 变量和函数
  • 文字替换
  • 文件包含(或翻译)
  • 条件评估和循环

(从维基百科结束)

<小时/> PHP有几个模板引擎。 其中一个是Twig

例如,而不是这样写:

<?php echo $var ?>
<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>

你可以用Twig做到这一点:

{{ var }}
{{ var|escape }}

另一个例子:

<ul id="navigation">
    <?php if (navigation) { ?>
        <?php foreach ($navigation as $item) { ?>
            <li><a href="<?php echo $item->href; ?>"><?php echo $item->caption; ?></a></li>
        <?php } ?>
    <?php } ?>
</ul>

在模板引擎中:

<ul id="navigation">
    {% for item in navigation %}
        <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
    {% endfor %}
</ul>

答案 1 :(得分:3)

此语法由模板引擎使用,该引擎读取此文件并生成最终HTML。 其中一些可能是像karthikr评论的Django或Smarty。