在PHP cli脚本中更改用户的当前目录

时间:2015-07-31 15:44:07

标签: php bash ubuntu

在我写的PHP cli脚本中,我需要更改运行脚本的用户的路径。目标路径不固定。

该脚本将在Ubuntu上运行的机器上使用。使用bash脚本我可以使用sourcing,但这似乎不适用于PHP脚本。当我尝试这个时,忽略脚本顶部的php二进制的hashbang,并将脚本解释为bash脚本。我真的不知道还有什么可以尝试。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

据我所知,您有一个父进程,它将在子进程中启动PHP以执行PHP脚本。并且您希望该PHP脚本的逻辑能够导致父进程'工作目录改变。 PHP脚本无法直接修改父工作目录。但是......您可以让子PHP脚本创建一个包含cd newpath命令的新文件,然后source新创建的文件。所以

某些main.sh脚本文件包含以下内容:

/bin/php /path/to/the/php/script.php
source /tmp/generatedscript
rm /tmp/generatedscript

script.php应该创建一个新的tmp文件,该文件只包含一个cd命令,并将所需目录作为目标。 main.sh source可以source该文件,而您现在正处于新的wd。

请务必main.sh <div class="panel"> <div id="stats" class="panel-collapse collapse bloc-deroulant-menu"> <?php include('donnees/stats.php'); include('page/stats.php'); ?> </div> </div> ,以便所有命令都在当前流程中运行。