我需要将用户输入写入我的YAML文件。用户输入需要解释为纯文本。 我需要逃脱什么?怎么逃避它?
要生成yaml文件,我使用Symfony的Yaml组件。例如:
代码:
$result = ['key' => '@text'];
echo $yaml->dump($result);
实际输出:
key: '@text'
当我使用Symfony的yaml服务加载此输出时,我收到致命错误:
路径“key”的类型无效。期望的标量,但有对象。
所需的输出:(因为@是reserved indicator)
key: '@@text'
此输出加载OK并被解释为@text
。
答案 0 :(得分:1)
输出完全有效。转储器通过将其放在单引号中来逃避该值。如果没有单引号,它将无效。
@
没有理由加倍,而@
加倍不是YAML中的句法设备。 @@text
仍然是没有引号的无效YAML标量。