从命令行调用 PHP 时设置 $_SERVER 变量?

2022-08-30 15:18:52

是否可以通过命令行将变量传递给 PHP 脚本?$_SERVER

具体来说,我正在尝试手动设置,以便我可以在不设置邮件服务器的情况下测试电子邮件管道。$_SERVER['recipient']


答案 1

在 *nix:

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

<?php

print_r($_SERVER);

测试:

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

[recipient] => something@example.com

或者,您可以导出它或 setenv(取决于您的操作系统),例如

$ export recipient="email@example.com"
$ setenv recipient="email@example.com"

答案 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 );

推荐