【问题标题】:Why my PHP doesn't run the same command as specified in cmd?为什么我的 PHP 没有运行 cmd 中指定的相同命令?
【发布时间】:2016-03-16 15:49:59
【问题描述】:

我正在使用 Windows 机器。 当我在 cmd 中运行此命令时,它工作正常。

C:\wamp\www\upload\cprogram.exe > output.txt

但是当我在我的 php 中编写相同的命令时,它会显示

">不被识别为内部或外部命令"

我的php代码:

$exepath="C:\wamp\www\upload\cprogram.exe";

$outputpath="C:\wamp\www\upload\output.txt";
exec("$exepath > $outputpath");

请告诉我如何发送我执行的 C 程序输出文件?

【问题讨论】:

    标签: php windows exec stdout wampserver


    【解决方案1】:

    请告诉我如何发送我执行的 C 程序输出文件?

    您可以通过多种方式使用 php 将命令的输出写入文件。

    在您的示例中,由于使用了连接,它不起作用。这应该会更好:

    exec($exepath.' > '.$outputpath);
    

    另一种选择是改用shell_exec 命令:

    $exepath="C:\wamp\www\upload\cprogram.exe";
    $outputpath="C:\wamp\www\upload\output.txt";
    shell_exec ($exepath ." > ". $outputpath);
    

    或者只使用system 命令并自己将输出写入文件:

    $exepath="C:\wamp\www\upload\cprogram.exe";
    $outputpath="C:\wamp\www\upload\output.txt";
    system($exepath, $return);
    $fp = fopen($outputpath, 'w');
    fwrite($fp, $return);
    fclose($fp);
    

    【讨论】:

    • 谢谢你最后一部分成功了。但我必须传递返回值而不是返回状态。所以我对代码做了一点改动。 $result=system($exepath,$return); fwrite($fp,$result);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 2010-12-28
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多