3

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 配列の 1 つに表示されることを期待していましたが、空です。

[_POST] => Array
    (
    )

[HTTP_POST_VARS] => Array
    (
    )
4

3 に答える 3

2

$_GLOBALSではなく使用する必要があります$GLOBALS

さらに、出力バッファリングを使用する代わりにこれを行うことができます。

$var = print_r($_GLOBALS, true);

の 2 番目のパラメーターtrueとして を指定するprint_rと、自動的に出力するのではなく、結果が返されます。

于 2009-01-19T04:37:36.937 に答える
1

curl コマンドラインから目盛り (') を削除します。

curl -d hello=world -d test=yes http://localhost/dump.php
于 2009-01-19T05:58:26.807 に答える
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両方を保持します。

于 2009-01-19T05:32:07.810 に答える