如何在PHP中解析YAML MIME类型

时间:2017-11-22 19:58:32

标签: php mime-types

下午好,

我正在尝试捕获源自Puppet Master服务器(Puppet开源版本4.9)的应用程序中的数据。 Puppet Server能够处理来自其所有客户端的报告,并通过HTTP POST将其作为MIME类型application / x-yaml发送到目的地。我已将Puppet Server配置为将数据发送到我的应用程序服务器。

我看到从Puppet Master Server进入我的应用服务器的流量(通过tcpdump)。我也在我的应用程序中看到一些POST数据到了,但是,我不知道如何捕获它作为解析它。当我尝试转储$ _POST数据时,它读为空。我使用Yii2作为应用程序框架。有谁知道如何捕获这些数据并解析它以插入数据库?

谢谢 -cs

1 个答案:

答案 0 :(得分:0)

PHP不会解析除form-encoded或multipart之外的任何请求类型,如果它是非多部分请求,只有YAML PHP不会对它做任何事情。

您可以使用input stream php://input访问原始请求正文。例如:

use foolib/YamlParser;

$rawbody = file_get_contents('php://input');
$myobject = YamlParser($rawbody);

应该注意的是,YAML定义了一些数据结构并不完全映射到本机PHP类型,因此YMMV取决于您选择的解析器。 PHP没有内置的YAML解析器。