在我写的PHP cli脚本中,我需要更改运行脚本的用户的路径。目标路径不固定。
该脚本将在Ubuntu上运行的机器上使用。使用bash脚本我可以使用sourcing,但这似乎不适用于PHP脚本。当我尝试这个时,忽略脚本顶部的php二进制的hashbang,并将脚本解释为bash脚本。我真的不知道还有什么可以尝试。
有没有办法实现这个目标?
答案 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>
,以便所有命令都在当前流程中运行。