> 백엔드 개발 > PHP 튜토리얼 > PHP의 셸 명령에서 실시간 출력을 얻으려면 어떻게 해야 합니까?

PHP의 셸 명령에서 실시간 출력을 얻으려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-02 20:17:12
원래의
663명이 탐색했습니다.

How Can I Get Live Output from Shell Commands in PHP?

셸 명령으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿