我试图通过PHP中的shell_exec运行的脚本需要设置一个环境变量,其中afaik通过以下方式完成:
export VARIABLE=value
但是,要运行脚本,我不得不这样做:
<?PHP
$sOutput = shell_exec("export VARIABLE=value && my_command_goeth_hereth");
每次运行任何命令时,它都必须导出变量。
这是唯一的方法吗,还是我错过了一种更简单的方式?
答案 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