如何将exec命令(在PHP中)输出写入文件?

时间:2014-06-18 07:16:05

标签: php

我将举一个例子 我希望将目录列表写入文件 所以我这样做了

<?php
$command="dir";
exec($command,$output);
//i want the directory list to be written to a file
// so i did this
$fp=fopen("file.txt","w");
fwrite($fp, $output);
//its actually writing the 0(return value for exec is int) to the file
// but i want the list of directories to be written to file
?>

它实际上将0(exec的返回值为int)写入文件 但我希望将目录列表写入文件 请告诉我一种方法

3 个答案:

答案 0 :(得分:0)

我认为对于你的针,你应该使用命令“passthru”。

这是一个例子:

<?php
    $command = exec('dir', $outpout);
    $data = "";
    foreach($output AS $key=>$val){
        $data .= $val . "\n";
    }

    $fp = fopen('file.txt', 'w') or die("i cant write...permission ?");
    fwrite($fp, $data);
    fclose($fp);
?>

让我知道它是否有效

度过愉快的一天

安东尼奥

P.S。谢谢凯文

答案 1 :(得分:0)

您可以直接在exec调用中执行此操作(它更短):

exec("dir > file.txt")

无论如何,你的代码是错误的,因为$ output是一个数组。 固定代码:

$command="dir";
exec($command,$output);
$fp=fopen("file.txt","w");
fwrite($fp, join("\n",$output))

更短的代码:

exec("dir",$output);
file_get_contents("file.txt",join("\n",$output));

答案 2 :(得分:0)

您只需使用shell_exec

即可
<?php
    $output = shell_exec('dir');

    $fp=fopen("file.txt","w");
    fwrite($fp, $output);
?>