2012-12-20 2701 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