2012-06-20 4 views
3

화면을 통해 실행되는 셸 명령을 사용하는 PHP 파일이 있는데 명령이 제대로 실행되지만 다른 파일에 쓰지 않고 PHP로 출력하지 않고 PHP로 출력 할 수있는 방법이 있는지 궁금합니다. 종료.PHP 화면 출력

PHP - 트레이스()는 단지 멋진 인 print_r()

$cmd = 'ls -h /'; 
trace(shell_exec('screen -S output -p 0 -X stuff "`echo '.$cmd.'\'\r\n\'`"')); 

웹 출력

NULL 

화면 출력

[email protected]:/home/ubuntu$ ls -h/
bin build etc initrd.img  lib   media opt root selinux sys usr vmlinuz 
boot dev home initrd.img.old lost+found mnt proc sbin srv  tmp var vmlinuz.old 

어떤 제안입니까?

--Edit--

특정 명령은 이유 중 하나는 내가 화면

PHP

$cmd = 's3ls'; 
trace(shell_exec('screen -S output -p 0 -X stuff "`echo '.$cmd.'\'\r\n\'`"')); 
trace(shell_exec($cmd)); 

웹 출력

trace:NULL 
trace:NULL 
을 사용하고, 직접 출력되지 않습니다

화면

[email protected]:/home/ubuntu$ s3ls 
+---------------+--------------------------+ 
|  Name  |  CreationDate  | 
+---------------+--------------------------+ 
| bucket  | 2012-05-31T13:08:51.000Z | 
| bucket  | 2012-01-17T16:51:58.000Z | 
| bucket  | 2012-03-31T11:19:54.000Z | 
+---------------+--------------------------+ 
+1

'$ output = shell_exec ('ls -h /'); '의 문제점은 무엇입니까? –

+0

shell_exec 또는 exec 명령을 직접 실행하지 않는 이유는 무엇입니까? –

+0

http://php.net/manual/en/function.shell-exec.php#refsect1-function.shell-exec-examples – j0k

답변

1

void passthru (string $command [, int &$return_var ])

경유() 함수는 명령을 실행한다는 점에서 간부() 함수와 유사하다. Unix 명령의 출력이 이 브라우저로 직접 전달되어야하는 바이너리 데이터 인 경우 exec() 또는 system() 대신이 함수를 사용해야합니다. 이 의 일반적인 용도는 이미지 스트림을 직접 출력 할 수있는 pbmplus 유틸리티와 같은 것을 실행하는 것입니다. Content-type을 image/gif로 설정하고 을 호출 한 다음 pbmplus 프로그램을 호출하여 gif를 출력하면 이미지를 직접 출력하는 PHP 스크립트를 만들 수 있습니다.

분명히 약간 흐릿해질 수도 있지만.

+0

감사합니다. 이전에는이 ​​기능에 대해 들어 보지 못했습니다. D –