【问题标题】:How do I get all environment variables as an array in PHP?如何在 PHP 中将所有环境变量作为数组获取?
【发布时间】:2012-12-08 02:21:01
【问题描述】:

标题说了算。我想将它与proc_open 一起使用,将一些变量附加到当前环境中。

$current_env = get_all_env_vars_magically();
$env = array_merge($current_env, $new_vars);
$ph = proc_open($command, array(1 => array('pipe', 'w')), 
    $pipes, dirname(__FILE__), $env);

编辑:$_ENV 默认为空/未填充。 $_SERVER 包含的不仅仅是环境变量。

【问题讨论】:

  • @Jack $_ENV 对我来说是空的。
  • 然后检查你的variables_order
  • @Jack 谢谢。但真的没有什么更便携的了吗?
  • 如果通过 cli commang printenv 得到相同的结果怎么办?

标签: php environment-variables


【解决方案1】:

从 PHP7.1 开始,现在可以省略 varname 来检索所有环境变量的关联数组。

试试getenv()https://3v4l.org/fkFoR

PHP 文档:https://www.php.net/manual/en/function.getenv.php

【讨论】:

    【解决方案2】:

    试试getenv(),它会获取环境变量的值。

    仅当variables_order 配置指令的值包含E 时,才会创建$_ENV 数组。如果$_ENV 不可用,请使用getenv( ) 检索环境变量:

    $path = getenv('PATH');

    【讨论】:

    • 能否请您添加一个getenv() 用法的示例?
    • variables_order 配置指令在哪里
    • 所以如果你知道变量名,你就可以获得价值。像 getenv("PATH")... 但是如何获取所有变量名称的列表?
    • 可以在php.ini中找到variables_order
    【解决方案3】:

    认为你必须使用 $_ENV 参数

    【讨论】:

    • 真的没有什么更便携的了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2010-10-24
    • 2019-11-28
    相关资源
    最近更新 更多