是否可以通过命令行将$ _SERVER变量传递给PHP脚本?
具体来说,我正在尝试手动设置$ _SERVER ['recipient'],以便我可以在不设置邮件服务器的情况下测试电子邮件管道。
答案 0 :(得分:37)
On * 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(取决于您的操作系统),例如
$ export recipient="email@domain.com"
$ setenv recipient="email@domain.com"
答案 1 :(得分:0)
@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 );
答案 2 :(得分:0)
我个人使用以下内容。
示例:在我的PHP命令行中设置 $ _ SERVER ['recipient] 。
使用OS X
将以下行添加到文件“〜/ .bash_profile ”(如果它不存在则创建它)
export recipient="something@example.com"
使用Ubuntu GNU / Linux
将以下行添加到文件“ / etc / environment ”(创建它,如果它不存在,请参阅https://help.ubuntu.com/community/EnvironmentVariables)
recipient=something@example.com
答案 3 :(得分:0)
您还可以传递两个或更多变量。例如:
$ SERVER_NAME="example.com" REQUEST_URI="?foo=bar" php script.php
<?php
print_r($_SERVER);
答案 4 :(得分:-4)
如何使用以下内容设置名为dummy.php的虚拟页面:
<?php
$_SERVER['recipient'] = 'me@gmail.com';
?>