2012-12-20 28 views
10

Tiêu đề cho biết. Tôi muốn sử dụng điều này với proc_open, để thêm một số biến vào môi trường hiện tại.Làm cách nào để nhận tất cả các biến môi trường dưới dạng một mảng trong 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); 

Chỉnh sửa: $_ENV trống/không được điền theo mặc định. $_SERVER chứa nhiều hơn v env vars.

+0

@Jack '$ _ENV' trống cho tôi. – Znarkus

+1

Sau đó kiểm tra [variables_order] của bạn (http://php.net/manual/en/ini.core.php#ini.variables-order) –

+2

@Jack Thanks. Nhưng có thực sự không có gì di động hơn? – Znarkus

Trả lời

-6

Giả sử bạn đã sử dụng đối số $ _ENV

+0

'$ _ENV' trống cho tôi. – Znarkus

+0

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

+2

Có thực sự không có gì di động hơn? – Znarkus

1

Hãy thử getenv() nó nhận giá trị của biến môi trường.

Mảng $ _ENV được tạo ra chỉ khi giá trị của các chỉ thị cấu hình variables_order chứa E. Nếu $ _ENV không có sẵn, sử dụng getenv() để lấy một biến môi trường:

$ path = getenv (' CON ĐƯỜNG');

+0

Bạn có thể thêm một ví dụ về cách sử dụng 'getenv()' không? – mattjegan

+0

chỉ thị cấu hình 'biến_order' ở đâu – Hafiz

Các vấn đề liên quan