PHP YAML 解析器 [已关闭]

2022-08-30 07:26:10

有谁知道一个好的YAML解析器用于PHP?如果是这样,这个库的优缺点是什么?


答案 1

上次更新:2017年7月26日

以下是 PHP 中 YAML 状态的摘要:

  • C库的包装器:如果你需要纯粹的速度,你可能会想要这些:
  • 纯 PHP 实现:

    • sfYaml:Symfony的YAML组件。你可以在这里看到它的作者的动机。他想要的是“易于使用,快速,经过单元测试并具有清晰错误消息”的东西。
    • spyc:没有依赖关系的YAML解析器

在撰写本文时,上述库的最新版本发布日期以及它们支持的 YAML 规范版本(1.2 是最新版本)是:

php-yaml   1.3.0     2016-09-24     YAML 1.1  [PHP 5]
php-yaml   2.0.0     2016-09-24     YAML 1.1  [PHP 7]
syck       0.9.3     2008-11-18     YAML 1.0
sfYaml     3.3.5     2017-06-15     YAML 1.1, most of 1.2
spyc       0.6.2     2017-02-24     YAML 1.1 

答案 2

Spyc: https://github.com/mustangostang/spyc

纯PHP实现,因此您无需对服务器进行任何修改即可安装。如果速度是可怕的问题,它可能不是理想的解决方案,但是如果您使用YAML进行配置或相对较小的使用量,那么它是一个极好的解决方案。

给定一个 YAML 文档,Spyc 将返回一个数组,您可以根据需要使用该数组。

require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);

给定一个数组,Spyc将返回一个字符串,其中包含从您的数据构建的YAML文档。

$yaml_str = Spyc::YAMLDump($myarray);

推荐