Pergunta

Im atualmente trabalhando com uma API que requer enviamos nossos detalhes de coleta em XML para o seu servidor usando uma solicitação post.

Nada importante lá, mas não o seu trabalho, então eu quero a saída xml enviado para um arquivo txt para que eu possa olhar para o que está realmente sendo enviado !!

Em vez de postagem para o API im postagem para um alvo documento chamado, mas o xml sua saída sua gravação parece ser realmente errado. Aqui está o meu script de destino, nota que a postagem mensagens de script 3 itens, de modo que o arquivo que está sendo escrito deve ter detalhes de cada uma solicitação post após o outro.

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

Eu também tentei o seguinte, mas este acabou de gravar o último pedido post para apenas 1 item de coleção foi gravada no arquivo txt, em vez de todos os 3

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

Eu sei im faltando algo realmente óbvio, mas ive sido olhando para este durante toda a manhã!

Foi útil?

Solução

Mudança

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

para

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

Além disso, a mudança

$payload .= fgets($fp);

para

$payload = fgets($fp);

Outras dicas

Você provavelmente deve usar onda em vez de buscar o conteúdo e, em seguida, escrevê-lo via fwrite

mudança

  $payload .= fgets($fp);

para

 $payload = fgets($fp);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top