proc_open
명령을 실행하고 입력/출력에 사용되는 파일 포인터를 엽니 다.
함수 이름 : proc_open ()
함수 설명 : proc_open () 함수는 명령을 실행하고 입력/출력에 사용되는 파일 포인터를 엽니 다.
해당 버전 : PHP 4> = 4.3.0, PHP 5, PHP 7
구문 : Resource Proc_Open (String $ cmd, Array $ descriptorspec, Array & $ Pipes [, String $ cwd [, Array $ env [, array $ else_options]]])))).
매개 변수 :
반환 값 : 성공시 리소스 유형의 프로세스 식별자를 반환하고 실패시 False를 반환합니다.
샘플 코드 :
// 执行一个简单的命令并读取输出$descriptorspec = array( 0 => array("pipe", "r"), // 标准输入1 => array("pipe", "w"), // 标准输出2 => array("pipe", "w") // 标准错误); $process = proc_open('ls -l', $descriptorspec, $pipes); if (is_resource($process)) { // 读取输出echo stream_get_contents($pipes[1]); // 关闭文件指针fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); // 等待进程结束,并获取返回值$return_value = proc_close($process); }
이 예에서는 proc_open ()을 사용하여 간단한 명령 "ls -l"을 실행하고 파일 포인터를 사용하여 명령의 출력을 읽습니다. 적절한 descriptorspec 배열을 설정하면 입력/출력에 대한 파일 포인터 유형을 지정할 수 있습니다. 이 예에서는 표준 입력을 하나의 파이프 라인으로 리디렉션하고 표준 출력 및 표준 오류를 다른 두 파이프 라인으로 리디렉션합니다. 그런 다음 Stream_get_contents () 함수를 사용하여 표준 출력 파이프 라인에서 명령의 출력을 읽습니다. 마지막으로 모든 파일 포인터를 닫고 Proc_Close ()를 사용하여 프로세스가 종료 될 때까지 기다렸다가 반환 값을 얻습니다.