我以前通过php文件使用系统命令..cd \然后突然工作了几次尝试它停止了:|无论我做什么
<?php
$command = array("cd \","dir");
$result = system($command[0], $return);
?>
答案 0 :(得分:3)
Windows支持正斜杠/
以及反斜杠\
因此,通过使用正斜杠,您应该交叉兼容,并且从长远来看不会恶化。
<?php
$command = array("cd /","dir");
$result = system($command[0], $return);
?>
如果您有任何错误,请发布它们,因为问题可能不是目录削减,因为您说它以前正在工作。
答案 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);?>