如何在PHP shell_exec中设置命令行环境变量

时间:2010-08-26 02:06:03

标签: php command-line

我试图通过PHP中的shell_exec运行的脚本需要设置一个环境变量,其中afaik通过以下方式完成:

export VARIABLE=value

但是,要运行脚本,我不得不这样做:

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

每次运行任何命令时,它都必须导出变量。

这是唯一的方法吗,还是我错过了一种更简单的方式?

2 个答案:

答案 0 :(得分:16)

由于环境变量是继承的,因此在脚本中设置它们也会为它们启动的命令设置它们。您只需使用putenv

putenv("VARIABLE=value");

答案 1 :(得分:6)

不会只是:

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

诀窍?

如果您正在运行多个shell脚本,那么putenv就是您的朋友,正如zneak指出的那样。

编辑,有一个例子:

env.php:

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

runenv.php:

<?PHP
echo shell_exec('FOO=bar php env.php');
然后试试 $ php runenv.php