PHP: als Data übermittelter Formular-Inhalt auslesen

Code-Snippet, wie man in PHP direkt als data übermittelte Daten (also kein multipart/formdata) auslesen kann. Beispiel einer solchen Datenübermittlung via cURL:

curl -X POST https://www.example.ch/form.php -H "Content-Type: text/xml" -d @test.xml

Übermittelt den Inhalt der test.xml an den Server.

So übermittelter Inhalt wird an php://input übermittelt und kann in einem PHP-Script wie folgt ausgelesen werden:

$data = '';
if ($fh = fopen('php://input', 'rb')) {
  while (!feof($fh))
    $data .= fread($fh, 1024*500);
  fclose($fh);
}

Der Inhalt befindet sich dann in $data