PHP Ergebnisse einer Post-Anforderung zu speichern
-
20-08-2019 - |
Frage
Im derzeit mit einer API arbeiten, die wir mit einer Post-Anforderung senden unsere Sammlung Details in XML zu ihrem Server erfordert.
Im Moment gibt es wichtige, aber es funktioniert nicht, so möchte ich die Ausgabe der gesendeten XML in eine txt-Datei, so kann ich wirklich sehen was gesendet !!
Statt auf ein Dokument namens Ziel der API im Posting veröffentlichen, aber die xml seine seine Aufzeichnung ausgibt scheint wirklich falsch. Hier ist mein Ziel Skript, beachten Sie, dass die Buchung Skript Beiträge 3 Artikel, so dass die Datei geschrieben werden Details der einzelnen Post-Anforderung einer nach dem anderen haben sollte.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// get the request data...
$payload = '';
$fp = fopen('php://input','r');
$output_file = fopen('output.txt', 'w');
while (!feof($fp)) {
$payload .= fgets($fp);
fwrite($output_file, $payload);
}
fclose($fp);
fclose($output_file);
?>
Ich habe auch versucht die folgenden, aber das ist nur die letzte Post-Anforderung aufgezeichnet, so dass nur 1 Auflistelement in der txt-Datei aufgezeichnet wurde, statt alle 3
output_file = fopen('output.txt', 'w');
while (!feof($fp)) {
$payload .= fgets($fp);
}
fwrite($output_file, $payload);
fclose($fp);
fclose($output_file);
Ich weiß, im etwas wirklich offensichtlich fehlt, aber ive an diesem ganzen Morgen suchen!
Lösung
Ändern
$output_file = fopen('output.txt', 'w');
$output_file = fopen('output.txt', 'a');
Auch ändern
$payload .= fgets($fp);
$payload = fgets($fp);
Andere Tipps
Sie sollten wahrscheinlich curl statt, um den Inhalt zu holen und dann schreiben Sie es über Fwrite
Veränderung
$payload .= fgets($fp);
$payload = fgets($fp);