2017-11-22 4 views
0

Guten Tag alle,Wie YAML MIME-Typen in PHP

Ich versuche zu fangen Daten in meiner Anwendung zu analysieren, die von einem Puppet Master-Server stammt (Puppet Open-Source-Version 4.9). Der Puppet-Server kann Berichte von allen Clients verarbeiten und über einen HTTP-POST als MIME-Typ application/x-yaml an ein Ziel senden. Ich habe den Puppet-Server so konfiguriert, dass er Daten an meinen Anwendungsserver sendet.

Ich sehe den Verkehr auf dem my Application Server vom Puppet Master Server (über tcpdump). Ich sehe auch in meiner Anwendung, dass einige POST-Daten ankommen, aber ich weiß nicht, wie man es fängt, als es zu analysieren. Wenn ich versuche, die $ _POST-Daten auszugeben, wird es leer angezeigt. Ich benutze Yii2 als Anwendungsframework. Würde jemand wissen, wie man diese Daten fängt und analysiert, um sie in eine Datenbank einzufügen?

Danke -cs

Antwort

0

PHP werden alle Anforderungstypen nicht analysieren anderes als Form-codierte oder mehrteiliger, wenn sie mit ihm nur mit YAML PHP tun eine nicht-mehrt Anfrage ist nicht alles.

Sie können auf den Rohauftragskörper zugreifen, indem Sie input streamphp://input verwenden. zB:

use foolib/YamlParser; 

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

Es sollte beachtet werden, dass YAML einige Datenstrukturen definiert, die nicht genau sauber auf native PHP-Typen zuordnen, so YMMV je nachdem, welche Parser Sie wählen. PHP verfügt nicht über einen integrierten YAML-Parser.