php shell_exec()输出来获取文本文件

时间:2011-04-19 11:36:24

标签: php command-line exec shell-exec

我正在尝试在Centos计算机上运行rate -c 192.168.122.0/24命令,并使用shell_exec('rate -c 192.168.122.0/24')命令将该命令的输出写入文本文件;仍然没有运气!!

4 个答案:

答案 0 :(得分:3)

如果你不需要PHP,你可以在shell中运行它:

rate -c 192.168.122.0/24 > file.txt

如果你必须从PHP运行它:

shell_exec('rate -c 192.168.122.0/24 > file.txt');

“>” character将命令的输出重定向到文件。

答案 1 :(得分:1)

您还可以通过PHP获取输出,然后将其保存到文本文件

    $output = shell_exec('rate -c 192.168.122.0/24');
    $fh = fopen('output.txt','w');
    fwrite($fh,$output);
    fclose($fh);

答案 2 :(得分:1)

如您忘了提及,您的命令提供非结束输出流。要实时读取输出,您需要使用popen

PHP网站上的示例:

$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);

您可以像文件一样阅读过程输出。

答案 3 :(得分:0)

$path_to_file = 'path/to/your/file';
$write_command = 'rate -c 192.168.122.0/24 >> '.$path_to_file;
shell_exec($write_command);
希望这会有所帮助。 :d 这将引导您走向一个好方法。 https://unix.stackexchange.com/a/127529/41966