시스템 프로그램 실행 passthru
(PHP 4, PHP 5, PHP 7, PHP 8)
passthru — 외부 프로그램 실행 및 원시 출력 표시
설명
passthru(string $command
, int &$result_code
= null
): ?bool
passthru() 함수는 command
을 실행한다는 점에서 exec() 함수와 유사합니다. 이 함수는 Unix 명령의 출력이 브라우저로 직접 다시 전달되어야 하는 바이너리 데이터인 경우 exec() 또는 system() 대신 사용해야 합니다.
이것의 일반적인 용도는 이미지 스트림을 직접 출력할 수 있는 pbmplus 유틸리티와 같은 것을 실행하는 것입니다. Content-type을 image/gif
로 설정한 다음 pbmplus 프로그램을 호출하여 gif를 출력하면 이미지를 직접 출력하는 PHP 스크립트를 생성할 수 있습니다.
매개변수
command
- 실행할 명령입니다.
result_code
result_code
인수가 있으면 Unix 명령의 반환 상태가 여기에 배치됩니다.
반환 값
성공하면 null
을, 실패하면 false
를 반환합니다.
메모
경고 사용자 제공 데이터가 이 함수에 전달되도록 허용할 때 escapeshellarg() 또는 escapeshellcmd()를 사용하여 사용자가 시스템을 속여 임의의 명령을 실행하지 못하도록 합니다.
메모: 프로그램이 이 함수로 시작된 경우 백그라운드에서 계속 실행하려면 프로그램의 출력을 파일이나 다른 출력 스트림으로 리디렉션해야 합니다. 그렇게 하지 않으면 프로그램 실행이 끝날 때까지 PHP가 중단됩니다.
기타
- exec() - 외부 프로그램 실행
- system() - 외부 프로그램을 실행하고 출력을 표시
- popen() - 프로세스 파일 포인터를 엽니다.
- escapeshellcmd() - 이스케이프 쉘 메타 문자
- backtick operator