Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP popen() 함수 완벽 정리 – 파이프 열기와 사용법

PHP popen() 함수란?

popen() 함수는 PHP에서 프로세스와 통신할 수 있도록 파이프(pipe)를 열어주는 함수입니다. 이 함수를 통해 외부 명령어를 실행하고 그 결과를 파일 포인터처럼 다룰 수 있습니다.

popen()으로 생성된 포인터는 일반 파일 함수인 fgets(), fgetss(), fwrite() 등과 함께 사용할 수 있으며, 작업이 끝나면 반드시 pclose() 함수를 호출하여 닫아야 합니다.

문법(Syntax)

popen(command, mode)

매개변수(Parameters)

  • command − 실행하고자 하는 명령어를 지정합니다.

  • mode − 파이프를 여는 방식을 설정합니다. 읽기 전용은 "r", 쓰기 전용은 "w"와 같이 지정합니다.

반환값(Return Value)

popen() 함수는 실행에 성공하면 TRUE를 반환하고, 오류가 발생하면 FALSE를 반환합니다.

사용 예제

예제 1 : 디렉터리 목록 읽기

<?php
    // 파이프 열기
    $file_pointer = popen("/bin/ls", "r");
    pclose($file_pointer);
?>

출력 결과

TRUE

위 예제에서는 "/bin/ls" 명령어를 읽기 모드("r")로 실행하여 파이프를 연 뒤, pclose()로 닫았습니다.

예제 2 : 실행 파일 호출

<?php
    // 파이프 열기
    $file_pointer = popen("/executable/installer.exe", "r");
    pclose($file_pointer);
?>

출력 결과

TRUE

정리 및 주의사항

popen() 함수는 외부 프로그램을 실행하고 입출력을 제어해야 할 때 유용하게 활용됩니다. 다만 다음 사항을 꼭 기억하세요.

  • popen()으로 연 포인터는 반드시 pclose()로 닫아 리소스 누수를 방지해야 합니다.

  • 모드는 용도에 맞게 선택해야 합니다. 데이터를 읽으려면 "r", 쓰려면 "w"를 사용합니다.

  • 외부 명령어를 실행하는 만큼, 보안을 위해 신뢰할 수 있는 입력만 사용하는 것이 좋습니다.