【发布时间】:2015-08-18 15:31:27
【问题描述】:
我目前正计划使用 Symfony 的 ProcessBuilder,它允许设置一些环境变量,这些变量将传递给 proc_open 调用。
我需要某个命令来更改TMPDIR,并在之后恢复它,所以我想知道修改后的环境(以及$TMPDIR env 变量的修改值)何时会在打电话,还是我需要自己恢复?如果需要特定命令(在我的例子中是 ghostscript),这个值是否会被改变?
谢谢
【问题讨论】:
-
假设您使用
putenv更改环境变量,请求完成后将恢复为标准设置。您可以结合使用getenv来复制旧值,并使用putenv在请求期间自行重置它,以防脚本中的其他内容尝试使用它。 -
我指的是
proc_open函数的$env参数,但我猜putenv也可以做到这一点...... -
对不起。我没有阅读整个问题。
proc_open中的 env 不是 PHP 的环境。只要您保持 I/O 指针打开,它就会持续,但仅限用于打开指针的命令。 -
经过一些测试,就是这样,所以它基本上做了我需要它做的事情。问题已解决,谢谢!