2010-08-26 152 views
8

我试图通过在PHP了shell_exec来运行该脚本需要设置环境变量,据我所知是通过做:如何设置命令行环境变量在PHP了shell_exec

export VARIABLE=value 

然而,要运行脚本我不得不做的事:

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

它接缝有点无意义不得不每次运行任何命令时导出变量。

这是做到这一点的唯一方法,还是我错过了一个更简单的方法?

回答

13

由于环境变量是继承的,所以在脚本中设置它们会为它启动的命令设置它们。你只需要使用putenv

putenv("VARIABLE=value"); 
6

将不只是:

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

做的伎俩?

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

EDIT与〔实施例:

env.php:

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

runenv.php:

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

然后尝试 $ php runenv.php

+0

为什么这是任何不同我在上面做什么? 即'export VARIABLE = value && command' – 2010-08-26 03:22:40

+0

它几乎是一回事。但是如果您只想将环境应用于单个脚本/程序,则不需要导出。不止一个,你可能更好用putenv() – timdev 2010-08-26 03:34:22

相关问题