34

これは少し奇妙に聞こえるかもしれませんが、いくつかのパラメーターを$_POST配列に渡す必要があります。Apacheや他のWebサーバーと同じように。

残念ながら、 Ubuntulibapache2-mod-php5をインストールする場所が見つかりませんでした。

4

3 に答える 3

63

スクリプトの先頭に次の行を挿入するだけです。

/* 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'
于 2013-07-18T13:12:55.080 に答える
19

それは簡単にはできません。バイナリを呼び出して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

于 2011-04-13T20:46:45.033 に答える
1
curl --data "name=ii" "param1=value1&param2=value2" http://test.com/sample.php
于 2013-06-27T12:57:04.593 に答える