php shell_exec () положил, чтобы получить текстовый файл - PullRequest
3 голосов
/ 19 апреля 2011

Я пытаюсь запустить команду rate -c 192.168.122.0/24 на моем компьютере Centos и записать вывод этой команды в текстовый файл с помощью команды shell_exec('rate -c 192.168.122.0/24');все еще не повезло !!

Ответы [ 4 ]

3 голосов
/ 19 апреля 2011

Если вам не нужен PHP, вы можете просто запустить его в оболочке:

rate -c 192.168.122.0/24 > file.txt

Если вам нужно запустить его из PHP:

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

">"символ перенаправляет вывод команды в файл.

1 голос
/ 19 апреля 2011

Как вы забыли упомянуть, ваша команда предоставляет нескончаемый поток вывода .Чтобы прочитать вывод в реальном времени, вам нужно использовать popen .

Пример с сайта PHP:

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

Вы можете прочитатьобрабатывать вывод как файл.

1 голос
/ 19 апреля 2011

Вы также можете получить вывод через PHP, а затем сохранить его в текстовом файле

    $output = shell_exec('rate -c 192.168.122.0/24');
    $fh = fopen('output.txt','w');
    fwrite($fh,$output);
    fclose($fh);
0 голосов
/ 02 мая 2014
$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

...