web-dev-qa-db-ja.com

コマンドラインからPHPを呼び出すときに$ _SERVER変数を設定しますか?

$ _SERVER変数をPHPスクリプトにコマンドラインを介して渡すことは可能ですか?

特に、$ _ SERVER ['recipient']を手動で設定して、メールサーバーを設定せずに電子メールのパイピングをテストできるようにしています。

27

* nixの場合:

$ recipient="[email protected]" php script.php

<?php

print_r($_SERVER);

テスト:

$ recipient="[email protected]" php script.php | grep recipient

[recipient] => [email protected]

または、次のようにエクスポートするか、(OSに応じて)setenvを実行できます。

$ export recipient="[email protected]"
$ setenv recipient="[email protected]"
38
sberry

個人的には以下を使用しています。

例:my PHPコマンドラインでset$ _ SERVER ['recipient])と入力します。

OS Xの場合

Ubuntu GNU/Linuxの場合

0
cgaldiolo

@ sberryの答えは正しいです。

...しかし、$_SERVER配列の設定デフォルト値を探してこのページに来たので、コマンドラインからPHPを実行すると、ここに私のそれが誰かを助けることを願っています。

empty( $_SERVER['HTTP_Host'] ) && $_SERVER['HTTP_Host'] = 'localhost';
empty( $_SERVER['REQUEST_URI'] ) && $_SERVER['REQUEST_URI'] = '/';
empty( $_SERVER['DOCUMENT_ROOT'] ) && $_SERVER['DOCUMENT_ROOT'] = __DIR__;
print_r( $_SERVER );
0
tivnet