PHP ftp_rawlist() 함수란?
ftp_rawlist() 함수는 PHP에서 FTP 서버의 특정 디렉터리에 있는 파일 및 폴더 목록을 파일 크기, 수정 시간, 권한 정보 등 상세 정보와 함께 가져오는 함수입니다. 단순히 파일 이름만 필요할 때 사용하는 ftp_nlist()와 달리, ls -l 명령처럼 각 파일의 자세한 정보를 포함한 결과를 배열 형태로 반환합니다.
문법(Sytax)
ftp_rawlist(conn, dir, recursive);
매개변수(Parameters)
conn −
ftp_connect()로 생성한 FTP 연결 리소스입니다.dir − 파일 목록을 조회할 디렉터리 경로입니다. 예를 들어
/,/uploads등을 지정할 수 있습니다.recursive − 선택적(optional) 매개변수입니다. 기본적으로 서버에 "LIST" 명령을 전송하여 해당 디렉터리의 목록을 가져옵니다.
반환값(Return)
ftp_rawlist() 함수는 배열(array)을 반환하며, 배열의 각 요소는 서버가 응답한 텍스트 한 줄에 해당합니다. 즉, 각 요소에는 파일 이름뿐 아니라 권한, 소유자, 파일 크기, 최종 수정 일시 등의 정보가 문자열로 담겨 있습니다. 실패 시 false를 반환합니다.
사용 예제
다음은 FTP 서버에 접속한 후, 루트(/) 디렉터리의 파일 목록을 상세 정보와 함께 가져오는 예제입니다.
<?php
$ftp_server = "192.168.0.4";
$ftp_user = "jacob";
$ftp_pass = "tywg61gh";
// FTP 서버에 연결
$conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
// 로그인
$login = ftp_login($conn, $ftp_user, $ftp_pass);
// 루트 디렉터리의 파일 목록 조회
$file_list = ftp_rawlist($conn, "/");
// 연결 종료
ftp_close($conn);
var_dump($file_list);
?>
실행 결과 예시
위 코드를 실행하면 다음과 같은 형식의 문자열 배열이 출력됩니다.
array(2) {
[0]=>
string(58) "-rw-r--r-- 1 jacob users 1024 Jan 15 09:30 index.php"
[1]=>
string(57) "drwxr-xr-x 2 jacob users 4096 Feb 03 14:12 uploads"
}참고 사항
반환되는 문자열의 형식은 운영체제나 FTP 서버 소프트웨어에 따라 조금씩 다를 수 있으므로, 파싱할 때는 이를 고려해야 합니다.
파일 이름만 필요하다면 더 간단한
ftp_nlist()함수를 사용하는 것이 좋습니다.FTP 연결 실패나 로그인 오류 발생 시 원하는 동작을 하도록
or die()또는 예외 처리를 함께 사용하는 것이 안전합니다.