从调用PHP命令行时设置$ _SERVER变量?(Set $_SERVER variable whe

2019-06-24 18:29发布

是否有可能通过命令行传递一个$ _ SERVER变量PHP脚本?

具体来说,我正在尝试设置$ _ SERVER [“收件人”]手工,所以我可以测试电子邮件管道没有建立邮件服务器。

Answer 1:

在* 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"


Answer 2:

通过@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 );


Answer 3:

我个人使用以下。

例如:在我的PHP命令行设置$ _ SERVER ['收件人。

随着OS X

  • 按照第https://github.com/ersiner/osx-env-sync
  • 追加下面一行到文件“〜/ .bash_profile中 ”(创建它,如果它不存在)

    export recipient="something@example.com"

与Ubuntu的GNU / Linux

  • 追加下面一行到文件“ 的/ etc /环境 ”(创建它,如果它不存在,请参阅https://help.ubuntu.com/community/EnvironmentVariables )

    recipient=something@example.com



Answer 4:

如何建立所谓dummy.php与此内容的虚拟页面:

<?php
    $_SERVER['recipient'] = 'me@gmail.com';
?>


文章来源: Set $_SERVER variable when calling PHP from command line?