使用PHP存储发布请求的结果

时间:2009-06-26 09:24:43

标签: php http-post file-writing

我目前正在使用API​​,要求我们使用post请求将xml中的收集详细信息发送到他们的服务器。

没有什么重要的,但它不起作用,所以我想将发送的xml输出到txt文件,所以我可以看看实际发送的是什么!!

而不是发布到API im发布到一个名为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 :(得分:0)

您应该使用curl来获取内容,然后通过fwrite

来编写

答案 1 :(得分:0)

变化

  $payload .= fgets($fp);

 $payload = fgets($fp);

答案 2 :(得分:0)

更改

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

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

另外,更改

$payload .= fgets($fp);

$payload = fgets($fp);