29

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

具体的には、$ _ SERVER ['recipient']を手動で設定して、メールサーバーを設定せずにメールのパイプをテストできるようにしています。

4

5 に答える 5

43

*nix の場合:

$ recipient="email@domain.com" php script.php

<?php

print_r($_SERVER);

テスト:

$ recipient="email@domain.com" php script.php | grep recipient

[recipient] => something@domain.com

または、次のようにエクスポートするか、setenv (OS によって異なります) を使用できます。

$ export recipient="email@domain.com"
$ setenv recipient="email@domain.com"
于 2012-05-24T05:18:45.857 に答える
2

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

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

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 );
于 2014-07-29T20:33:56.267 に答える
0

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

例: PHP コマンド ラインで$_SERVER['recipient]を設定します。

OS X の場合

  • https://github.com/ersiner/osx-env-syncの指示に従ってください
  • 次の行をファイル ' ~/.bash_profile ' に追加します (存在しない場合は作成します)。

    export recipient="something@example.com"

Ubuntu GNU/Linux の場合

于 2016-01-06T17:26:29.040 に答える
-5

次の内容で、dummy.php というダミー ページを設定してみてはいかがでしょうか。

<?php
    $_SERVER['recipient'] = 'me@gmail.com';
?>
于 2012-05-24T04:39:12.897 に答える