推送不在ubuntu 14.04上更改php中的目录

时间:2014-09-19 01:45:22

标签: php linux ubuntu-14.04

抱歉,我之前发布了错误的代码,但这又是个问题。

我试图在php的exec中使用pushd,但工作目录并没有改变。我有几行示例代码:

<?php
    exec('pwd; pushd abc/def/; pwd; popd; pwd; 2>&1', $output);
    echo('<pre>');
    print_r($output);

输出

Array
(
    [0] => /var/www/html
    [1] => /var/www/html
    [2] => /var/www/html
)

我想提前感谢你们,试图回答这个问题 vinaka

2 个答案:

答案 0 :(得分:0)

关于你的问题:

exec()创建一个新进程,该进程有自己的工作目录,因此它不会影响启动它的进程的工作副本。只需在浏览器的起始页面输入“更改工作目录php”并进行一些研究,这一点不应该太难找到。

关于您的代码:

并非每个sh​​ell都内置pushd。例如,Debian上的默认/ bin / sh没有,但你没有看到,因为你只是尝试捕获stdout而不是stderr。我建议用PHP编写代码,而不是解析shell输出。

答案 1 :(得分:0)

如果要更改当前正在运行的PHP进程的目录,请使用

chdir ( $directory )

根据成功/失败返回true / false。

http://php.net/manual/en/function.chdir.php