我需要将用户输入写入我的YAML文件。用户输入需要被解释为纯文本。我需要什么才能逃脱?如何逃脱?
为了生成yaml文件,我使用Symfony的yaml组件。例如:代码:
$result = ['key' => '@text'];
echo $yaml->dump($result);
实际输出:key: '@text'
当我用Symfony的yaml服务加载这个输出时,我得到一个致命的错误:
路径"key"的类型无效。期望标量,但得到对象。
期望输出:(因为@是保留指示符)
key: '@@text'
此输出加载OK,并被解释为@text
。
输出完全有效。转储程序通过将值放在单引号中来转义该值。没有单引号是无效的。
没有理由将@
加倍,并且在YAML中,将@
加倍不是一种语法手段。如果没有引号,@@text
仍然是无效的YAML标量。