Php 使用命令行curl模拟HTTPPOST并将输出导出到文本文件
如何使用curl模拟HTTP POST请求并在文本文件上捕获结果?我已经有了一个名为dump.php的脚本: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 ( )
<?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