如何使用curl模拟HTTP POST请求并在文本文件上捕获结果?我已经有一个名为dump.php的脚本:
<?php
$var = print_r($GLOBALS, true);
$fp = fopen('raw-post.txt','w');
fputs($fp,$var);
fclose($fp);
?>
我做了一个简单的测试:
curl -d 'echo=hello' http://localhost/dump.php
但我没有看到我在输出文件中转储的数据。我希望它出现在一个POST阵列中,但它是空的。
[_POST] => Array
(
)
[HTTP_POST_VARS] => Array
(
)
答案 0 :(得分:2)
您需要使用$_GLOBALS
而不是$GLOBALS
。
此外,您可以这样做而不是使用输出缓冲:
$var = print_r($_GLOBALS, true);
将true
作为第二个参数提供给print_r
将返回结果,而不是自动打印结果。
答案 1 :(得分:1)
从curl命令行中删除刻度线('):
curl -d hello=world -d test=yes http://localhost/dump.php
答案 2 :(得分:0)
如果您只是想捕获POST数据,请为您dump.php
文件执行此类操作。
<?php
$data = print_r($_POST, true);
$fp = fopen('raw-post.txt','w');
fwrite($fp, $data);
fclose($fp);
?>
所有POST数据都存储在$_POST
变量中。此外,如果您还需要GET数据,$_REQUEST
将同时保留两者。