如何使用Silex / Symfony解析Yaml文件中的HTML

时间:2014-05-29 17:39:54

标签: php html symfony yaml silex

我使用yml文本文件存储我的Silex / Twig网站的小段文本:

use Symfony\Component\Yaml\Yaml;

$loader = Yaml::parse('/path/to/file.yml');

我的文件如下:

block_2:
    id: 2
    title: "Title"
    body: |
       Lore ipsum <strong>legend</strong>
       Lore ipsum dolorem etc.

在我的Twig文件中,我显示变量

<p>{{ block.body }}</p>

现在输出与回车不符合预期,并且未正确解析html实体。而是在浏览器中呈现文本

Lore ipsum <strong>legend</strong> Lore ipsum dolorem etc.

如何正确解析html和换行符?

1 个答案:

答案 0 :(得分:2)

默认情况下,twig会转义模板的所有输入。这使您的模板非常安全。

但在某些情况下,保存输出原始输入。这可以通过以下四种方式完成:

  1. 使用escape filter,将其标记为安全的HTML:<p>{{ block.body|escape('html') }}</p>最佳解决方案
  2. 使用raw filter<p>{{ block.body|raw }}</p>如果你确定它是安全的,则有用)
  3. 使用autoescape tag,将其标记为安全的HTML(这可以防止错误的JavaScript在您的代码中出现):{% autoescape 'html' %}<p>{{ block.body }}</p>{% endautoescape %}在为同一部分中的多个输入执行时有用
  4. disabling auto escaping all together所有模板(不推荐
  5. 另见文档

    中的HTML Escaping