使用PHP更改环境变量

时间:2013-04-24 17:33:23

标签: php linux

我想在不使用标准输出的情况下将PHP中的变量赋予bash。 我的问题可以简化为以下问题:

如何使此代码有效?

export A=1;
php -r "echo 'variable A equals: '.\$_SERVER['A'].\"\n\";"
php -r "\$_SERVER['A']=0;"
echo $A

修改

以下代码不起作用:

export A=1;
php -r "echo 'variable A equals: '.\$_SERVER['A'].\"\n\";"
php -r "putenv(\"A=0\");"
// Same problem with:
// php -r "exec(\"export A=0\");"
echo $A

3 个答案:

答案 0 :(得分:1)

您希望了解使用putenvhttp://php.net/manual/en/function.putenv.php

如果您在不同的范围内运行此操作(例如,让PHP脚本死掉,然后运行BASH脚本),请尝试以下操作将myvar指定为文件的输出:

$ myvar=$(php -f example.php)  

答案 1 :(得分:0)

putenv("A=0");

应该按预期工作:)

答案 2 :(得分:0)

这是怎么回事? exec("export A=".$_SERVER['A'].)