PHP系统(“cd \”);不工作

时间:2010-11-28 14:29:47

标签: php directory system cd

我以前通过php文件使用系统命令..cd \然后突然工作了几次尝试它停止了:|无论我做什么

<?php
    $command = array("cd \","dir"); 
    $result = system($command[0], $return);
?>

7 个答案:

答案 0 :(得分:3)

Windows支持正斜杠/以及反斜杠\因此,通过使用正斜杠,您应该交叉兼容,并且从长远来看不会恶化。

<?php
    $command = array("cd /","dir");
    $result = system($command[0], $return);
?>

Wiki Path_Computing


如果您有任何错误,请发布它们,因为问题可能不是目录削减,因为您说它以前正在工作。

答案 1 :(得分:2)

尝试

$command = array("cd \\","dir"); 

答案 2 :(得分:2)

我想我发现了问题.. PHP中的system()命令不会创建cmd.exe的实例 相反,它只执行命令并退出。 这就是使用CD命令更改目录的原因 ..由system()创建的实例的目录被更改然后退出。我希望我的理论是正确的xD

答案 3 :(得分:0)

在linux mod中:

$command = array("cd \\","dir");
在Windows mod中

$command = array("cd /","dir");

答案 4 :(得分:0)

PHP有自己的更改目录命令:http://us3.php.net/manual/en/function.chdir.php。但是,这可能不会完全符合您的要求。

答案 5 :(得分:0)

在我的测试中(在Win 7和XP上),我发现有必要转义目录的\(即改为使用\\)。或者你可以使用正斜杠。另外,为什么不使用PHP的chdir function而不是系统调用?

<?php
    echo getcwd() . "\n";
    chdir("\\");
    echo getcwd() . "\n";
?>

编辑以响应评论“...我正在尝试在浏览器中创建一个cmd ....”:system function只运行您指定的命令并返回。它不会(直接)影响调用系统命令的进程。因此,使用命令更改目录的系统调用不会影响运行PHP程序的工作目录,如果这是您正在尝试的目的。

答案 6 :(得分:0)

为什么不能使用分隔符在同一系统调用()中使用两个命令?

<?php
$result = system("cd \;".$command[0], $return);?>