PHPスクリプトを提供するWebサーバーを作成しようとしています。現在、次のように動作します。
php index.php
を呼び出しますphp
の出力を読み取り、それをクライアントに返します。次の理由により、パラメータがPHPスクリプトに渡されないことを除いて、これはすべて機能しています。
var_dump($_GET);
戻り値:
配列(0){}
$_GET
パラメータは、起動時にPHPバイナリにどのように渡されますか?
PHPバイナリを使用していますか?CLIまたはCGIですか?PHPのバイナリの CGIバージョン 適切に処理して、環境変数とPOSTデータを渡すと、それを渡します。
php-cgi
バイナリはCGIインターフェースを実装しているため、コマンドラインでパラメーターを渡すことができます。
php-cgi -f index.php left=1058 right=1067 class=A language=English
最終的には$_GET
:
Array
(
[left] => 1058
[right] => 1067
[class] => A
[language] => English
)
[〜#〜] cgi [〜#〜] がどのように機能するかを読んで、それをWebサーバーに実装することができます。
参照: RFC3875
Wikipedia によると、答えはQUERY_STRING
環境変数:
QUERY_STRING='user=foo&pass=bar&left=1234' php-cgi index.php
または別の手順で:
export QUERY_STRING='user=foo&pass=bar&left=1234'
php-cgi index.php
これは、php-cgi
コマンド。これはCGI仕様の一部であるためです。通常のphp
コマンドはこの変数を無視しますが、スクリプトがそれを使用する場合があります。
Php script.php test = asdfを渡す場合
$result = parse_args($argv,$argc,$help);
print_r($result);
STDINに渡す場合は、STDINを読み取り、自分でヘッダーを解析する必要があります。 REQUEST_URIには必要なデータが含まれており、それを渡すことができます。