2012-12-20 2787 views
10

标题说出来。我想在proc_open中使用它,以将一些变量附加到当前环境中。如何将所有环境变量作为PHP中的数组获取?

$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包含比env变量更多。

+0

@Jack'$ _ENV'对我来说是空的。 – Znarkus

+1

然后检查你的[variables_order](http://php.net/manual/en/ini.core.php#ini.variables-order) –

+2

@Jack谢谢。但是,真的没有更多的便携式? – Znarkus

回答

-6

认为你必须使用$ _ENV参数

+0

'$ _ENV'对我来说是空的。 – Znarkus

+0

http://stackoverflow.com/questions/3780866/why-is-my-env-empty – ennovativemedia

+2

真的没有更多的便携? – Znarkus

1

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

,创建$ _ENV阵列仅当是variables_order配置指令的值包含E.如果$ _ENV不可用,用getenv()来检索一个环境变量:

$路径= GETENV(”路径');

+0

请问您可以添加一个'getenv()'用法的例子吗? – mattjegan

+0

其中是'variables_order'配置指令 – Hafiz