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

StackOverflow https://stackoverflow.com/questions/1011211

Вопрос

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.Поэтому убедитесь, что в конце каждой строки есть , и вы должны получить желаемый результат.Редактировать:
Том:Упс.Зафиксированный.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top