커맨드 라인에서 PHP가 실행 한 프로세스에서 실시간으로 출력을 표시하고 입력을 읽는 방법을 알아 내려고합니다. 많은 대안이있는 것 같습니다 : shell(), exec(), system(), popen(), proc_open()
실시간으로 프로세스를 실행하십시오.
그리고 차이점은 무엇인지 완전히 명확하지 않습니다. 필요한 것은 프로세스를 실행하고, PHP 스크립트가 호출되는 터미널에 출력을 표시하고, 입력을 읽은 다음 프로세스가 종료 될 때 PHP 스크립트 흐름으로 돌아가는 것입니다. 내가 설명한 proc_open()
옵션 중 아마도이 작업을 수행 할 수 있지만 잔인한 것으로 보입니다. 원하는 작업은 외부 프로세스를 제어하고 완료 될 때까지 기다리는 것입니다.
관련이있는 몇 가지 질문이 있지만 실제로 볼 수있는 것은 실제로 백그라운드에서 프로세스를 보내거나 (브라우저가 아닌) 브라우저에서 결과를 표시하는 것입니다. 터미널에 있음).
같은
pcntl_exec()
당신은 당신이 '실시간'가 무슨 뜻인지 알아 스펙 수 있습니까? 이것은 당신이 얻는 대답의 종류에 차이를 만들 것입니다. 예를 들어, 인간의 지각의 관점에서 '실시간'은 원자력 발전소의 제어 시스템 측면에서 '실시간'과 다르다. – rcravens사용자 인식의 의미에서 실시간을 의미합니다. 예를 들어, 쉘()은 프로세스가 완료되면 프로세스의 모든 출력을 함께 제공합니다. – Andrea