【问题标题】:what does {% %} mean in html [closed]{% %} 在 html 中是什么意思 [关闭]
【发布时间】:2013-05-27 21:38:08
【问题描述】:

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

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

【问题讨论】:

  • 可以是 django 模板,也可以是 smarty 模板
  • 这个问题不值得投票。这是一个完美的问题,它可以帮助初学者。
  • {% %} 之间的代码是一个 php 表达式,而 {{ }} 之间的代码是一个输出。 {{ban.reason}} 可以是 或其他。你最好弄清楚正在使用什么模板引擎。请阅读 Twig 模板引擎。
  • What does "{% %}" syntax mean? 的可能重复项

标签: php html


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这是一个模板引擎系统,其语法基于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>
    

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 2010-12-29
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2019-09-29
      • 2016-01-07
      相关资源
      最近更新 更多