在 PHP 8.3 中,我正在读取一个带有
parse_yaml_file()
的文件,如下所示:
summary: "Apples
Apples are a delicious fruit, unless they have worms in them."
当我
json_encode()
使用 parse_yaml_file()
生成的数组然后将其输出到文件时,输出如下所示:
Apples
Apples are a delicious fruit, unless they have worms in them."
所以看起来
parse_yaml_file()
正在修剪空白,并且它正在删除 Apples
和 Apples are a delicious fruit.
之间的空白行
但是,我需要保留该空行。 有没有简单的方法来保留它,或者我必须在
parse_yaml_file()
删除它之后将其添加回来?
这不是 PHP 解析器中的错误,这是定义为 YAML 规范的一部分:
在多行双引号标量中,换行符会受到流线折叠的影响,这会丢弃任何尾随空白字符。也可以转义换行符。在这种情况下,转义换行符将从内容中排除,并保留转义换行符之前的任何尾随空白字符。结合转义空白字符的能力,这允许在任意位置断开双引号行。
您可以使用转义序列对 YAML 进行编码:
summary: "Apples\n\nApples are a delicious fruit, unless they have worms in them."