php shell exec() выводится для получения текстового файла
Я пытаюсь запустить команду rate -c 192.168.122.0/24
на своем компьютере Centos и записать вывод этой команды в текстовый файл с помощью команды shell_exec('rate -c 192.168.122.0/24')
; все еще безуспешно!!
4 answers
Как вы забыли упомянуть, ваша команда предоставляет нескончаемый выходной поток. Чтобы прочитать вывод в режиме реального времени, вам необходимо использовать попен.
Пример с веб-сайта PHP:
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
Вы можете прочитать вывод процесса точно так же, как файл.
Если вам не нужен PHP, вы можете просто запустить его в оболочке:
rate -c 192.168.122.0/24 > file.txt
Если вам нужно запустить его с PHP:
shell_exec('rate -c 192.168.122.0/24 > file.txt');
Символ ">" перенаправляет вывод команды в файл.
Вы также можете получить вывод с помощью PHP, а затем сохранить его в текстовый файл
$output = shell_exec('rate -c 192.168.122.0/24');
$fh = fopen('output.txt','w');
fwrite($fh,$output);
fclose($fh);
$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