현재 위치: > 최신 기사 목록> ftp_Rawlist의 결과를 JSON 형식으로 변환하는 방법

ftp_Rawlist의 결과를 JSON 형식으로 변환하는 방법

gitbox 2025-05-26

1. FTP_RAWLIST 리턴 결과의 형식을 이해하십시오

ftp_rawlist는 문자열 배열을 반환하며 각 문자열은 Linux 시스템에서 LS -L 명령의 출력과 유사합니다.

 -rw-r--r-- 1 user group 1234 May 10 10:00 file1.txt
drwxr-xr-x 2 user group 4096 May 09 09:00 folder1

각 줄에 포함 된 정보는 다음과 같습니다.

  • 파일 권한 (예 : -rw-r--- )

  • 하드 링크 수

  • 파일이 속한 사용자

  • 파일은 그룹에 속합니다

  • 파일 크기 (바이트 번호)

  • 수정 날짜 (보통 월, 일, 시간 또는 연도 포함)

  • 파일 이름


2. FTP_Rawlist의 결과를 배열로 구문 분석합니다

구문 분석 프로세스의 초점은 각 줄의 줄을 다양한 필드로 분해하여 키 값 쌍으로 구성하는 것입니다. 샘플 코드는 다음과 같습니다.

 <?php
function parseRawList(array $rawList): array {
    $files = [];
    foreach ($rawList as $line) {
        $chunks = preg_split('/\s+/', $line, 9);
        if (count($chunks) < 9) {
            continue; // 형식 제외,뛰어 올라
        }
        list($permissions, $links, $owner, $group, $size, $month, $day, $timeOrYear, $name) = $chunks;

        // ~에 따르면timeOrYear판사 연도 또는 시간
        if (strpos($timeOrYear, ':') !== false) {
            // 시간 포함,올해는 현재 연도가 필요합니다
            $year = date('Y');
            $time = $timeOrYear;
        } else {
            $year = $timeOrYear;
            $time = '00:00';
        }

        // 완전한 수정 시간을 접합합니다,타임 스탬프로 변환하십시오
        $dateStr = "$month $day $year $time";
        $timestamp = strtotime($dateStr);

        $files[] = [
            'name' => $name,
            'permissions' => $permissions,
            'links' => (int)$links,
            'owner' => $owner,
            'group' => $group,
            'size' => (int)$size,
            'modified' => date('Y-m-d H:i:s', $timestamp),
            'is_dir' => $permissions[0] === 'd',
        ];
    }
    return $files;
}
?>

3. 예 : FTP에 연결하고 목록을 가져 와서 JSON으로 변환합니다.

완전한 예는 FTP 서버에 연결하는 방법을 보여주고 FTP_Rawlist를 호출 한 다음 위의 구문 분석 기능을 사용하여 JSON을 변환하고 출력합니다.

 <?php
$ftpServer = 'gitbox.net';
$ftpUser = 'username';
$ftpPass = 'password';

// 설립하다FTP연결하다
$connId = ftp_connect($ftpServer);
if (!$connId) {
    die("无法연결하다到FTP섬기는 사람 $ftpServer");
}

// 로그인하십시오
if (!ftp_login($connId, $ftpUser, $ftpPass)) {
    ftp_close($connId);
    die("FTP로그인하십시오失败");
}

// 원본 파일 목록을 가져옵니다
$rawList = ftp_rawlist($connId, '.');
if ($rawList === false) {
    ftp_close($connId);
    die("얻다FTP목록이 실패했습니다");
}

// 분석 목록
$filesArray = parseRawList($rawList);

// 산출JSON체재
header('Content-Type: application/json');
echo json_encode($filesArray, JSON_PRETTY_PRINT);

// 关闭연결하다
ftp_close($connId);

// 구문 분석 기능은 위와 동일합니다,약간
?>

4. 요약

위의 방법을 통해 FTP_Rawlist 함수의 문자열 목록 결과를 구조화 된 배열로 변환하고 마지막으로 JSON 형식 데이터를 생성합니다. 이는 PHP 프로그램 내에서 FTP 파일 목록의 작동을 용이하게 할뿐만 아니라 API를 통해 데이터를 프론트 엔드 또는 기타 시스템으로 전송하는 것을 용이하게합니다.

이 방법은 특히 FTP 파일 목록을 기반으로 한 관리 백엔드 또는 파일 브라우징 기능을 구축하는 데 특히 적합하여 데이터 처리를보다 직관적이고 효율적으로 만듭니다.