셸 명령으로 PHP를 통해 라이브 출력에 액세스
PHP의 shell_exec 함수는 PHP 스크립트 내에서 셸 명령을 실행하는 편리한 방법을 제공합니다. 그러나 런타임 중에 이러한 명령의 실시간 출력을 검색하는 것은 어려울 수 있습니다. 이 문서에서는 이 기능을 달성하기 위한 두 가지 방법을 살펴봅니다.
popen() 및 상호 작용
프로세스와 상호 작용하고 실행 시 출력을 읽으려면 popen()을 사용합니다. . 이 함수는 다른 파일 리소스처럼 처리할 수 있는 파일 포인터를 반환합니다.
$proc = popen($cmd, 'r'); echo '<pre class="brush:php;toolbar:false">'; while (!feof($proc)) { echo fread($proc, 4096); @flush(); } echo '';
이 스크립트는 명령을 시작하고 출력을 4096바이트 단위로 읽은 후 페이지에 직접 인쇄합니다. 플러시() 호출을 사용하면 출력이 즉시 표시됩니다.
passthru()의 편의성
실시간 상호 작용이 필요하지 않은 경우 passthru()가 대체 접근 방식을 제공합니다. 명령의 출력을 페이지에 직접 반영하는 기능입니다.
echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo '';
passthru()가 더 간단하지만 전체 명령 결과를 한 번에 출력하므로 많은 양을 생성하는 명령에는 적합하지 않을 수 있습니다.
결론
popen()과 passthru() 모두 PHP의 쉘 명령에서 실시간 출력에 액세스하기 위한 다양한 메커니즘을 제공합니다. popen()은 데이터 검색에 대한 세밀한 제어를 제공하여 실시간 업데이트를 가능하게 합니다. 반면 passthru()는 사용 편의성을 위해 상호작용성을 희생하므로 즉각적인 출력이 필요한 시나리오에 적합합니다.
위 내용은 PHP의 셸 명령에서 실시간 출력을 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!