转义YAML文件的用户输入

时间:2016-08-29 12:52:34

标签: php symfony yaml

我需要将用户输入写入我的YAML文件。用户输入需要解释为纯文本。 我需要逃脱什么?怎么逃避它?

要生成yaml文件,我使用Symfony的Yaml组件。例如:

代码:

$result = ['key' => '@text'];
echo $yaml->dump($result);

实际输出:

key:    '@text'

当我使用Symfony的yaml服务加载此输出时,我收到致命错误:

  

路径“key”的类型无效。期望的标量,但有对象。

所需的输出:(因为@是reserved indicator

key:    '@@text'

此输出加载OK并被解释为@text

1 个答案:

答案 0 :(得分:1)

输出完全有效。转储器通过将其放在单引号中来逃避该值。如果没有单引号,它将无效。

@没有理由加倍,而@加倍不是YAML中的句法设备。 @@text仍然是没有引号的无效YAML标量。