Question

Je travaille actuellement avec une API qui nécessite l'envoi des détails de notre collection au format xml à leur serveur via une requête de publication.

Rien de majeur là-bas, mais cela ne fonctionne pas, donc je veux exporter le xml envoyé dans un fichier txt afin que je puisse voir réellement ce qui est envoyé!

Au lieu d’afficher sur l’API, l’impression sur un document appelé cible, mais le fichier XML qui enregistre son enregistrement semble être vraiment faux. Voici mon script cible. Notez que le script de publication publie 3 éléments. Par conséquent, le fichier en cours d’écriture doit contenir les détails de chaque demande de publication, l’une après l’autre.

<?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);
?> 

J’ai aussi essayé ce qui suit, mais cela vient d’enregistrer la dernière demande de publication. Un seul élément de collection a donc été enregistré dans le fichier txt au lieu des 3

.
output_file = fopen('output.txt', 'w');
while (!feof($fp)) {
    $payload .= fgets($fp);
}
fwrite($output_file, $payload);
fclose($fp);
fclose($output_file);

Je sais que je manque quelque chose de vraiment évident, mais je l'ai regardé toute la matinée!

Était-ce utile?

La solution

Changer

$output_file = fopen('output.txt', 'w');

à

$output_file = fopen('output.txt', 'a');

Aussi, changez

$payload .= fgets($fp);

à

$payload = fgets($fp);

Autres conseils

vous devriez probablement utiliser curl à la place pour récupérer le contenu puis l'écrire via fwrite

changer

  $payload .= fgets($fp);

à

 $payload = fgets($fp);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top