PHP:Вывод многострочных результатов командной строки в виде разных строк
-
06-07-2019 - |
Вопрос
PHP:Вывод многострочных результатов командной строки в виде разных строк.Извините, если заголовок труден для понимания.По сути, я хочу, чтобы мой результат был похож на A, а не на B.В настоящее время он выглядит как Б.Я пробовал нл2бр.Сценарий, который я пытаюсь запустить:
Скрипт:
echo "Virus Scan Results:"; $scanme = system('cd /var/www/upload/files; clamscan --remove=yes '.$furl); printf(nl2br($scanme));
А:
802931t_e_s_t.txt: OK ----------- SCAN SUMMARY ----------- Known viruses: 574585 Engine version: 0.95.1 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 2.352 sec (0 m 2 s) Time: 2.352 sec (0 m 2 s)
Б:
802931t_e_s_t.txt: OK ----------- SCAN SUMMARY ----------- Known viruses: 574585 Engine version: 0.95.1 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 2.352 sec (0 m 2 s) Time: 2.352 sec (0 m 2 s)
Решение
почему вы используете nl2br, если это в командной строке?
выходы nl2br <br />
теги для новых строк...что не имело бы смысла в командной строке
Редактировать
Две вещи:
1 пытаться
system('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);
2 Возможно, вы захотите использовать руководитель функция вместо системы
например
exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);
$scanme = implode("\n",$scanme);
exec (строка $command [, массив &$output [, int &$return_var]])
Другие советы
Вы пытались просто распечатать вывод команды напрямую?
echo "Virus Scan Results:";
echo exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl);
ПС.Вам действительно следует очистить ввод следующим образом (если вы еще этого не сделали):
$furl = escapeshellarg($furl)
escapeshellarg() - Экранирование строки, которая будет использоваться в качестве аргумента оболочки.
Если вы работаете в командной строке, новая строка представляется как «
» или «
» в среде Windows.Поэтому убедитесь, что в конце каждой строки есть
, и вы должны получить желаемый результат.Редактировать:
Том:Упс.Зафиксированный.