Pregunta

PHP: genera múltiples salidas de línea de comandos como líneas diferentes. Lo siento si el título es difícil de entender. Básicamente quiero mi salida como A, en lugar de B. Actualmente se parece a B. He intentado nl2br. El script que intento ejecutar es:

Script:

echo "Virus Scan Results:";
$scanme = system('cd /var/www/upload/files; clamscan --remove=yes '.$furl);
printf(nl2br($scanme));

A:

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)

B:

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)

¿Fue útil?

Solución

¿por qué estás usando nl2br si esto está en la línea de comando?

nl2br genera <br /> etiquetas para nuevas líneas ... que no tendrían sentido en la línea de comando

Editar

Dos cosas:

1 prueba

system('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);

2 Es posible que desee utilizar el exec función en lugar de sistema

por ejemplo

exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);
$scanme = implode("\n",$scanme);

exec (string $ command [, array & amp; $ output [, int & amp; $ return_var]])

Otros consejos

¿Has intentado imprimir directamente la salida del comando?

echo "Virus Scan Results:";
echo exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl);

PS. Realmente debería desinfectar la entrada de esta manera (si aún no lo está haciendo):

$furl = escapeshellarg($furl)

escapeshellarg () - Escape una cadena para usarla como un argumento de shell

Si está ejecutando en la línea de comandos, una nueva línea se representa como '\ n' o '\ r \ n' en un entorno Windows. Por lo tanto, asegúrese de que haya un \ n al final de cada línea y de que obtenga la salida que desea. Editar:
Tom: Ups. Fijo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top