현재 위치: > 최신 기사 목록> FTP_RAWLIST COMBINES EXPORE DIRE DIRECTORY 데이터를 찢어 버립니다

FTP_RAWLIST COMBINES EXPORE DIRE DIRECTORY 데이터를 찢어 버립니다

gitbox 2025-05-29

FTP 관련 응용 프로그램을 개발할 때는 원격 FTP 서버에서 디렉토리 구조 정보를 얻고 추가로 구문 분석하고 처리해야합니다. PHP에서 FTP_RAWLIST 기능은 FTP 서버에서 디렉토리 목록을 얻는 원래 기능을 제공합니다. 이 기사는 Exploit 기능을 결합하여 FTP_Rawlist 의 반환 결과를 효율적으로 분해하여 필요한 디렉토리 구조 데이터를 신속하게 얻을 수있는 방법을 소개합니다.

1. FTP_RAWLIST 란 무엇입니까?

FTP_RAWLIST 는 FTP 작업을위한 PHP의 기능입니다. 이 기능은 List 명령을 FTP 서버로 보내고 반환 된 디렉토리 또는 파일 정보를 배열로 반환하는 것입니다. 각 배열 요소는 원시 FTP 디렉토리 항목 정보입니다.

샘플 코드는 다음과 같습니다.

 $conn = ftp_connect("gitbox.net");
ftp_login($conn, "username", "password");

$list = ftp_rawlist($conn, "/path/to/directory");
ftp_close($conn);

print_r($list);

이 코드는 FTP 서버 gitbox.net 에 연결하여 지정된 디렉토리에서 모든 파일 및 하위 디렉토리 목록을 얻습니다.

반환 된 $ 목록 배열은 다음과 같을 수 있습니다.

 Array
(
    [0] => drwxr-xr-x   2 user group       4096 May 20 14:34 folder1
    [1] => -rw-r--r--   1 user group       1234 May 20 14:35 file1.txt
)

각 라인은 파일 권한, 소유자, 파일 크기, 수정 날짜 및 기타 정보를 포함하는 공간 구분 문자열입니다.

2. Exploit 기능을 사용하여 디렉토리 항목을 구문 분석하십시오

우리가 관심있는 필드 (예 : 파일 이름, 파일 크기, 디렉토리 등)를 추출하기 위해 각 항목은 Exploit 함수를 사용하여 분해 될 수 있습니다.

샘플 코드 :

 foreach ($list as $item) {
    $parts = preg_split("/\s+/", $item, 9); // 가장 많이 공유9부분품,파일 이름으로 잘린 공간을 피하십시오
    $type = $parts[0][0] === 'd' ? 'directory' : 'file';
    $size = $parts[4];
    $name = $parts[8];

    echo "Type: $type, Size: $size, Name: $name\n";
}

preg_split을 규칙적으로 결합함으로써 일반적인 익스플로잇을 사용할 때 불일치 한 공간으로 인해 구문 분석 실패를 피하기 위해 다른 형식의 공간을 유연하게 처리 할 수 ​​있습니다.

3. 재사용 성을 향상시키기 위해 기능으로 캡슐화되었습니다

재사용의 경우, 구문 분석 로직을 함수로 캡슐화 할 수 있습니다.

 function parseFtpRawList($rawList) {
    $result = [];
    foreach ($rawList as $item) {
        $parts = preg_split("/\s+/", $item, 9);
        $result[] = [
            'type' => $parts[0][0] === 'd' ? 'directory' : 'file',
            'size' => $parts[4],
            'name' => $parts[8],
        ];
    }
    return $result;
}

// 사용의 예
$conn = ftp_connect("gitbox.net");
ftp_login($conn, "username", "password");
$rawList = ftp_rawlist($conn, "/");
$parsed = parseFtpRawList($rawList);
ftp_close($conn);

print_r($parsed);

이러한 방식으로 처리 한 후에는 쉽게 후속 논리 처리 또는 디스플레이를 위해 구조화 된 디렉토리 목록을 얻을 수 있습니다.

4. 요약

FTP_RawlistExploit (또는 Preg_Split ) 기능을 결합함으로써 PHP 프로그래머는 FTP 서버에서 반환 한 원시 디렉토리 데이터를 유용한 구조화 된 정보로 빠르게 구문 분석 할 수 있습니다. 이 방법은 간단하고 효율적이며 대부분의 FTP 디렉토리 구문 분석 시나리오에 적합합니다.

실제 개발에서는 파일 수정 시간의 구문 분석, 디렉토리 구조의 재귀 적 획득 등을 지원하여 기능적 무결성 및 사용자 경험을 향상시키는 등 프로젝트 요구에 따라 더욱 최적화 될 수 있습니다.