【问题标题】:PHP system("cd \"); not workingPHP系统("cd \");不工作
【发布时间】:2011-05-16 21:10:15
【问题描述】:

我以前通过 php 文件使用系统命令 ..cd \ 正在工作,然后在几次尝试后突然停止:|不管我做什么

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

【问题讨论】:

    标签: php directory system cd


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我想我找到了问题所在.. PHP 中的 system() 命令不会创建 cmd.exe 的实例 相反,它只执行命令并退出。 这就是为什么当您使用 CD 命令更改目录时 ..由system()创建的实例的目录被改变然后退出。我希望我的理论是正确的xD

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • lufi.dyndns-ip.com/cmd 我想使用系统命令..我现在实际上在 xp 上运行
        • @kapitanluffy:您可能有充分的理由想要使用系统调用,但您的评论没有解释任何内容。但是,如果没有充分的理由,我认为使用 PHP 调用会更容易。
        • @RobertPitt:虽然我 99.44% 确定正斜杠会起作用,但我还没有测试过。现在已经过测试,答案已经更新。
        • 好吧,你的权利..因为我正在试验它。我正在尝试在浏览器中创建一个 cmd。哦,我不打算使用电源外壳 xD
        • @kapitanluffy:我已经在 XP 上进行了测试,它在那里工作。我的答案已被编辑以反映这一点。
        【解决方案4】:

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

        【讨论】:

        【解决方案5】:

        试试

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

        【讨论】:

          【解决方案6】:

          Windows 支持正斜杠 / 和反斜杠 \,因此从长远来看,只使用正斜杠应该是交叉兼容的,并且会减少恶化。

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

          Wiki Path_Computing


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

          【讨论】:

            【解决方案7】:

            在 linux 模组中:

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

            在 Windows 模式中:

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

            【讨论】:

            • 如果你需要从windows迁移到linux操作系统,那需要修改很多行!
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-07-31
            • 2014-02-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多