是否可以通过命令行将 $_SERVER 变量传递给 PHP 脚本?
具体来说,我正在尝试手动设置 $_SERVER['recipient'] 以便我可以在不设置邮件服务器的情况下测试电子邮件管道。
是否可以通过命令行将 $_SERVER 变量传递给 PHP 脚本?
具体来说,我正在尝试手动设置 $_SERVER['recipient'] 以便我可以在不设置邮件服务器的情况下测试电子邮件管道。
在 *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"
@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 );
您还可以传递两个或更多变量。例如:
$ SERVER_NAME="example.com" REQUEST_URI="?foo=bar" php script.php
<?php
print_r($_SERVER);
我个人使用以下。
示例:在我的 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
如何使用以下内容设置一个名为 dummy.php 的虚拟页面:
<?php
$_SERVER['recipient'] = 'me@gmail.com';
?>