현재 위치: > 최신 기사 목록> FTP_Rawlist 기능을 사용하여 FTP 경로가 파일인지 디렉토리인지 확인하는 방법

FTP_Rawlist 기능을 사용하여 FTP 경로가 파일인지 디렉토리인지 확인하는 방법

gitbox 2025-06-15

FTP_Rawlist 기능을 사용하여 FTP 경로가 파일인지 디렉토리인지 확인하는 방법

PHP에서 FTP_RAWLIST 기능은 매우 유용한 도구이며 종종 FTP 서버의 지정된 디렉토리에 파일 및 하위 디렉토리를 나열하는 데 사용됩니다. 이 기능을 통해 파일 권한, 파일 크기, 마지막 수정 시간 및 기타 정보를 포함하여 FTP 서버에서 세부 파일 및 디렉토리 목록을 얻을 수 있습니다. 경우에 따라 FTP 경로가 파일인지 디렉토리인지 확인해야합니다. 현재 FTP_Rawlist 기능의 출력 정보를 사용하여 판단을 내릴 수 있습니다.

1. FTP_RAWLIST 기능 소개

FTP_Rawlist 기능의 기능은 FTP 서버에서 지정된 디렉토리의 파일 목록을 얻고 목록의 자세한 정보를 반환하는 것입니다. 기본 구문은 다음과 같습니다.

 ftp_rawlist(ftp_stream, directory);
  • FTP_STREAM : 유효한 FTP 연결 리소스.

  • 디렉토리 : 나열하려는 파일 또는 디렉토리의 경로.

이 함수는 배열을 반환하고 각 배열 요소는 FTP 서버의 파일 또는 디렉토리에 대한 정보 줄을 나타냅니다. 정보의 형식은 일반적으로 파일 또는 디렉토리, 소유자, 파일 크기, 수정 시간 등에 대한 권한을 포함한 Unix 스타일 목록입니다.

2. 파일인지 디렉토리인지 확인하는 방법

FTP_Rawlist가 반환 한 데이터를 통해 경로가 파일인지 디렉토리인지 여부를 결정할 수 있습니다. 그러한 판단을 내리려면 일반적으로 반환 된 각 정보 라인의 첫 번째 특성에 따라 다릅니다.

  • 첫 번째 문자가 D 인 경우 항목이 디렉토리임을 의미합니다.

  • 첫 번째 문자가 - 이면 항목이 파일임을 의미합니다.

따라서 경로 유형을 결정하기 위해 반환 된 첫 번째 줄의 내용 만 확인하면됩니다. 특정 구현은 다음 코드 예제를 참조하십시오.

3. 샘플 코드 : FTP 경로가 파일인지 디렉토리인지 확인하는 방법

 <?php
// FTP연결 정보
$ftp_server = "ftp.example.com";
$ftp_user_name = "username";
$ftp_user_pass = "password";

// 연결하십시오FTP섬기는 사람
$conn_id = ftp_connect($ftp_server);

// 로그인하십시오FTP섬기는 사람
if (@ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) {
    echo "FTP연결이 성공적으로 연결됩니다!<br>";

    // 수동 모드를 설정하십시오
    ftp_pasv($conn_id, true);

    // 확인하는 길
    $path = '/path/to/directory_or_file';

    // 디렉토리 목록을 가져옵니다
    $file_list = ftp_rawlist($conn_id, dirname($path));

    // 파일 또는 디렉토리인지 확인하십시오
    $is_directory = false;
    $is_file = false;

    foreach ($file_list as $file_info) {
        // 파일 정보를 분석하십시오
        $parts = preg_split("/\s+/", $file_info);
        $file_name = $parts[count($parts) - 1];

        // 디렉토리 여부를 결정하십시오
        if ($file_info[0] == 'd' && $file_name == basename($path)) {
            $is_directory = true;
            break;
        }

        // 파일인지 확인하십시오
        if ($file_info[0] == '-' && $file_name == basename($path)) {
            $is_file = true;
            break;
        }
    }

    // 출력 결과
    if ($is_directory) {
        echo "길 $path 디렉토리입니다。<br>";
    } elseif ($is_file) {
        echo "길 $path 파일입니다。<br>";
    } else {
        echo "길 $path 파일이나 디렉토리도 아닙니다。<br>";
    }

    // 폐쇄FTP연결하다
    ftp_close($conn_id);
} else {
    echo "无法연결하십시오FTP섬기는 사람!<br>";
}
?>

4. 코드 파싱

이 예에서는 먼저 FTP 서버에 연결하고 로그인합니다. 다음으로 FTP_RAWLIST 기능을 사용하여 지정된 경로 위의 디렉토리의 파일 목록을 가져옵니다. 그런 다음 반환 된 파일 목록을 통과하고 항목이 각 줄의 첫 번째 문자를 기반으로 파일인지 디렉토리인지 결정합니다. 마지막으로 결과 출력을 판단합니다.

5. 주목할만한 것들

  • 경로가 기호 링크 인 경우 FTP_Rawlist 가 반환 한 내용이 더 복잡 할 수 있으며 추가 처리가 필요합니다.

  • FTP_RAWLIST 의 출력은 일반적으로 FTP 서버의 구성에 따라 다릅니다. 다른 FTP 서버는 다른 파일 정보 형식을 반환 할 수 있으므로 특정 서버에 따라 구문 분석 규칙을 조정해야합니다.

  • 이 예제는 경로가 파일 또는 디렉토리의 직접 자식이라고 가정합니다. 대상 경로에 하위 디렉토리가 포함 된 경우, FTP_Rawlist 에 대한 재귀 호출이 추가로 확인해야 할 수 있습니다.

6. 요약

FTP_Rawlist 함수를 통해 FTP 서버의 경로가 파일인지 디렉토리인지 쉽게 결정할 수 있습니다. 반환 된 파일 정보를 구문 분석하고 첫 번째 문자를 기반으로 D (디렉토리) 또는 - (파일)인지 판단하면 정확한 판단을 할 수 있습니다. 이 방법은 대부분의 FTP 서버에서 작동하며 FTP에서 파일 및 디렉토리를 더 잘 관리하는 데 도움이 될 수 있습니다.