Использование PHP для хранения результатов почтового запроса

StackOverflow https://stackoverflow.com/questions/1048194

  •  20-08-2019
  •  | 
  •  

Вопрос

В настоящее время я работаю с 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);
?> 

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

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

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

Это было полезно?

Решение

Изменять

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

к

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

Также измените

$payload .= fgets($fp);

к

$payload = fgets($fp);

Другие советы

вам, вероятно, следует вместо этого использовать Curl для получения содержимого, а затем записать его через fwrite

изменять

  $payload .= fgets($fp);

к

 $payload = fgets($fp);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top