PHP: farklı çizgiler olarak Çıkış çok satırı komut satırı çıkışları

2 Cevap php

PHP: Output multiple line command-line outputs as different lines. Sorry if the title is difficult to understand. Basically I want my output like A, instead of B. It currently looks like B. I have tried nl2br. The script I am trying to run is:

Senaryo:

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)

2 Cevap

Bu komut satırında ise neden nl2br kullanıyorsunuz?

yeni hatlar için nl2br çıkışları <br /> etiketler ... komut satırında hiçbir anlamı olurdu ki

Edit

İki şey:

1 deneyin

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

2 yerine sistemin exec fonksiyonunu kullanmak isteyebilirsiniz

örneğin

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

exec (string $ komut [, array & $ çıkış [, int & $ return_var]])

Sadece doğrudan komutun çıktısını baskı denediniz mi?

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

PS. Eğer gerçekten bunu (zaten öyle yapıyorlar eğer) gibi girdileri olmalıdır:

$furl = escapeshellarg($furl)

escapeshellarg() - bir kabuk argüman olarak kullanılmak üzere bir dize Escape