PHP에서 스트림 처리를 위해 proc_open 활용
PHP에서 exec()를 사용할 때 다음과 같은 경우에는 stderr도 확인하는 것이 좋습니다. 오류. php://stderr을 사용하는 것은 옵션이지만 proc_open은 stderr 및 stdout 스트림을 별도로 처리하는 포괄적인 접근 방식을 제공합니다.
다음 예를 고려하세요.
// Initialize stream descriptors $descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"], // stderr ]; // Execute the command $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); // Read from the output streams $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); // Output the results echo "stdout:\n"; var_dump($stdout); echo "stderr:\n"; var_dump($stderr);
proc_open 및 지정된 스트림 설명자를 사용하면 PHP 명령의 출력을 효과적으로 분리하고 캡처하여 오류 및 기타 출력을 처리할 수 있습니다. 적절하게.
위 내용은 proc_open은 exec()와 비교하여 PHP의 스트림 처리를 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!