문제

PHP : 다중 라인 명령 줄 출력을 다른 줄로 출력합니다. 제목을 이해하기 어려운 경우 죄송합니다. 기본적으로 나는 B 대신 A와 같은 내 출력을 원합니다. 현재 B처럼 보입니다. NL2BR을 시도했습니다. 내가 실행하려는 대본은 다음과 같습니다.

스크립트:

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 시스템 대신 기능

예를 들어

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

exec (String $ command [, array & $ output [, int & $ return_var]]))))

다른 팁

명령의 출력을 직접 인쇄 한 적이 있습니까?

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

추신. 당신은 실제로 그렇게 입력을 소독해야합니다 (아직 그렇게하지 않은 경우) :

$furl = escapeshellarg($furl)

ESCAPESHELLARG () - 쉘 인수로 사용할 문자열을 탈출

CommandLine에서 실행중인 경우 Newline은 Windows 환경에서 ' n'또는 ' r n'으로 표시됩니다. 따라서 각 라인의 끝에 A N이 있는지 확인하고 원하는 출력을 가져와야합니다. 편집하다:
톰 : 죄송합니다. 결정된.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top