Php 使用命令行curl模拟HTTPPOST并将输出导出到文本文件

Php 使用命令行curl模拟HTTPPOST并将输出导出到文本文件,php,arrays,curl,Php,Arrays,Curl,如何使用curl模拟HTTP POST请求并在文本文件上捕获结果?我已经有了一个名为dump.php的脚本: <?php $var = print_r($GLOBALS, true); $fp = fopen('raw-post.txt','w'); fputs($fp,$var); fclose($fp); ?> 但是我没有看到我在输出文件中转储的数据。我原以为它会出现在一个POST数组中,但它是空的 [_POST] => Array ( )

如何使用curl模拟HTTP POST请求并在文本文件上捕获结果?我已经有了一个名为dump.php的脚本:

<?php
  $var = print_r($GLOBALS, true);
  $fp = fopen('raw-post.txt','w');
  fputs($fp,$var);
  fclose($fp);
?>
但是我没有看到我在输出文件中转储的数据。我原以为它会出现在一个POST数组中,但它是空的

[_POST] => Array
    (
    )

[HTTP_POST_VARS] => Array
    (
    )

您需要使用
$\u GLOBALS
而不是
$GLOBALS

此外,您可以这样做,而不是使用输出缓冲:

$var = print_r($_GLOBALS, true);

true
作为第二个参数提供给
print\r
将返回结果,而不是自动打印结果。

如果您只是尝试捕获POST数据,那么请为您的
dump.php
文件执行类似操作

<?php
    $data = print_r($_POST, true);
    $fp = fopen('raw-post.txt','w');
    fwrite($fp, $data);
    fclose($fp);
?>

所有POST数据都存储在
$\u POST
变量中。此外,如果还需要获取数据,
$\u请求将同时保存这两个数据。

从curl命令行中删除记号('):

curl -d hello=world -d test=yes http://localhost/dump.php

将其更改为$_GLOBALS,但没有得到Evan建议的输出,将其更改为$_GLOBALS而不是$GLOBALS,现在没有输出删除curl-d选项中的记号,现在输出文件中可以看到POST变量。谢谢埃文的帮助!不客气,弗朗西斯,很抱歉我不知道这个问题将$\u GLOBALS替换为$\u REQUEST,输出为:Array()$\u GLOBALS将同时包含_POST和_GET数组,但在执行上面的curl命令时,它不包含任何内容。
curl -d hello=world -d test=yes http://localhost/dump.php