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

PHP ftp_rawlist() 함수 완벽 가이드 – FTP 디렉터리 파일 목록 상세 조회하기

PHP ftp_rawlist() 함수란?

ftp_rawlist() 함수는 PHP에서 FTP 서버의 특정 디렉터리에 있는 파일 및 폴더 목록을 파일 크기, 수정 시간, 권한 정보 등 상세 정보와 함께 가져오는 함수입니다. 단순히 파일 이름만 필요할 때 사용하는 ftp_nlist()와 달리, ls -l 명령처럼 각 파일의 자세한 정보를 포함한 결과를 배열 형태로 반환합니다.

문법(Sytax)

ftp_rawlist(conn, dir, recursive);

매개변수(Parameters)

  • connftp_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() 또는 예외 처리를 함께 사용하는 것이 안전합니다.