在 bash
中从命令行运行 PHP 时,是否可以设置一个 $_SERVER
变量,它本身就是一个数组?
也就是说,如果我做这样的事情
$ export test=foo
然后运行这样的程序
<?php
#File: test.php
var_dump($_SERVER['test']);
程序将输出字符串值“foo”。是否可以让 $_SERVER['test']
等于一个 PHP 数组而无需额外的 PHP 代码?
我要解决的具体问题是我有一个无法修改的基于 Symfony CLI 的程序,该程序使用 $_SERVER
变量来引导其环境。
use Magento\Framework\App\Bootstrap;
use Magento\Framework\Shell\ComplexParameter;
//...
$bootstrapParam = new ComplexParameter(self::INPUT_KEY_BOOTSTRAP);
$params = $bootstrapParam->mergeFromArgv($_SERVER, $_SERVER);
$params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = null;
$bootstrap = Bootstrap::create(BP, $params);
Bootstrap::create(BP, $params);
识别 $params
中的一些嵌套键——我正在尝试找到一种方法来更改这些值无需修改 CLI 程序本身。
最佳答案
您可以通过.htaccess 文件或apache .conf 文件设置任何服务器变量,您可以使用mod_env 来实现。
SetEnv MY_EXAMPLE myexample_data
然后你可以在php文件中访问那个变量
echo $_SERVER["MY_EXAMPLE"]; //outputs myexample_data
或者在使用 PHP CLI 时 您可以使用以下设置 $_SERVER 变量
putenv('MY_EXAMPLE=myexample_data');
关于PHP 命令行界面 : Possible to set a $_SERVER Variable that's an Array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41288035/