2010-08-26 18 views
8

PHP shell_exec aracılığıyla çalıştırmak çalışıyorum komut afaik yoluyla yapılır ayarlanması bir çevre değişkeni gerektirir komut satırı ortam değişkeni nasıl ayarlanır: AncakPHP shell_exec

export VARIABLE=value 

, çalıştırmak için komut ben yapmak zorunda kalacağım:

<?PHP 
$sOutput = shell_exec("export VARIABLE=value && my_command_goeth_hereth"); 

Bu değişkeni herhangi komutları çalıştırmak her zaman ihracat yapmak çok anlamsız yolunmuş.

Bunu yapmanın tek yolu bu mu yoksa daha basit bir yolu mu özlüyorum?

cevap

13

Ortam değişkenleri devralındığı için, bunları komut dosyanızın içine yerleştirmek onları başlattığı komutlar için de ayarlayacaktır. Sadece putenv kullanmalısınız.

putenv("VARIABLE=value"); 
6

sadece olmaz:

<?PHP 
shell_exec('SOMEVAR=SOMEVAL /some/program'); 

hile yapmak?

Birden çok kabuk komut dosyası çalıştırıyorsanız, putenv, zneak işaretli olduğu için arkadaşınızdır. Bir xmaple ile

DÜZENLEME:

env.php:

<?PHP 
echo $_ENV['FOO']; 
echo "\n"; 

runenv.php:

<?PHP 
echo shell_exec('FOO=bar php env.php'); 

sonra $ php runenv.php

+0

denemek Neden bu herhangi farklıdır yukarıda ne yapıyorum? i.e. 'export VARIABLE = değer && komut ' –

+0

neredeyse aynı şey. Ancak, yalnızca ortamın tek bir komut dosyasına/programa uygulanmasını istiyorsanız, dışa aktarmanıza gerek yoktur. Birden fazla ve muhtemelen daha iyi putenv() – timdev