Использование PHP для хранения результатов почтового запроса - PullRequest
2 голосов
/ 26 июня 2009

В настоящее время я работаю с API, который требует, чтобы мы отправили информацию о нашей коллекции в формате xml на их сервер с помощью почтового запроса.

Ничего особенного, но он не работает, поэтому я хочу вывести отправленный xml в текстовый файл, чтобы я мог посмотреть, что на самом деле отправляется !!

Вместо публикации в API я отправляю в документ с именем target, но xml, выводящий его запись, кажется действительно неправильным. Вот мой целевой скрипт, обратите внимание, что скрипт публикации публикует 3 элемента, поэтому записываемый файл должен содержать детали каждого запроса на публикацию один за другим.

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

Я также попробовал следующее, но он только что записал последний пост-запрос, поэтому в файле txt был записан только 1 элемент коллекции вместо всех 3

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

Я знаю, что упускаю что-то действительно очевидное, но я смотрел на это все утро!

Ответы [ 3 ]

0 голосов
/ 26 июня 2009

изменение

  $payload .= fgets($fp);

до

 $payload = fgets($fp);
0 голосов
/ 27 марта 2010

Изменение

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

до

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

Кроме того, измените

$payload .= fgets($fp);

до

$payload = fgets($fp);
0 голосов
/ 26 июня 2009

вам, вероятно, следует использовать curl вместо того, чтобы извлекать содержимое и затем писать его через fwrite

...