これは少し奇妙に聞こえるかもしれませんが、いくつかのパラメーターを$_POST配列に渡す必要があります。Apacheや他のWebサーバーと同じように。
残念ながら、 Ubuntulibapache2-mod-php5
をインストールする場所が見つかりませんでした。
スクリプトの先頭に次の行を挿入するだけです。
/* If started from the command line, wrap parameters to $_POST and $_GET */
if (!isset($_SERVER["HTTP_HOST"])) {
parse_str($argv[1], $_GET);
parse_str($argv[1], $_POST);
}
この小さなコードでうまくいきます($_GETまたは$_POSTのどちらを使用するか、または必要に応じて両方を使用するかを決めることができます。
スクリプトを変更した後、引数を渡してコマンドラインからスクリプトを呼び出すことができます。
php yourscript.php 'arg1=x&arg2=y'
それは簡単にはできません。バイナリを呼び出してphp-cgi
、偽のPOSTリクエストをパイプすることができます。ただし、CGI環境変数を大量に設定する必要があります。
echo 'var1=123&var2=abc' | REQUEST_METHOD=POST SCRIPT_FILENAME=script.php REDIRECT_STATUS=CGI CONTENT_TYPE=application/www-form-urlencoded php-cgi
注:不十分で、そのようには機能しません。しかし、そのようなもの...
スクリプトにパッチを適用し、事前定義された環境変数から$_POST配列をロードさせる方が確かに簡単です。
$_POST = parse_url($_SERVER["_POST"]);
次に、簡単にするために、のように呼び出すことができます_POST=var=123 php script.php
。
curl --data "name=ii" "param1=value1¶m2=value2" http://test.com/sample.php