使用php passthru()更改目录
我想使用passthru()方法和命令行更改工作目录 这是php脚本使用php passthru()更改目录,php,Php,我想使用passthru()方法和命令行更改工作目录 这是php脚本 <?php passthru("chdir C:/Documents and Settings/svn"); print passthru("dir"); ?> 但是,它不会将工作目录更改为C:/Documents and Settings/svn。。 它正在从当前目录输出文件。。 如何解决此问题?您当前的代码有几个问题: 运行一个新进程,该进程可能会更改自己的当前目录,但这根本不会影响PHP进程的当前目录
<?php
passthru("chdir C:/Documents and Settings/svn");
print passthru("dir");
?>
但是,它不会将工作目录更改为C:/Documents and Settings/svn。。
它正在从当前目录输出文件。。
如何解决此问题?您当前的代码有几个问题:
passthru
打印命令的输出,但不返回任何内容;所以最后的打印
根本不起作用passthru
,并取消打印
:
chdir("C:/Documents and Settings/svn");
passthru("dir");
要解决这三个问题:
passthru("dir \"C:/Documents and Settings/svn\"");
当通过passthru执行的命令终止时,当前工作目录不会传播到PHP,因为它是一个子进程,与PHP不同 在您的情况下,可以将想要的目录附加到“dir”命令,如下所示:
passthru("dir \"C:/Documents and Settings/svn\"");
我不建议在您的案例中直接使用PHPchdir()
函数,因为它可能会产生严重的副作用,特别是如果您从脚本中包含其他PHP文件。
如果您使用的是安全模式,它也可能无法正常工作。passthru(“chdir C:/Documents and Settings/svn;dir”)