<?php
// FTP 서버 정보
$ftp_server = "gitbox.net";
$ftp_user = "your_username";
$ftp_pass = "your_password";
// 연결을 설정하고 로그인하십시오
$conn_id = ftp_connect($ftp_server);
if (!$conn_id) {
die("연결할 수 없습니다 FTP 섬기는 사람 {$ftp_server}");
}
if (!ftp_login($conn_id, $ftp_user, $ftp_pass)) {
ftp_close($conn_id);
die("FTP 로그인이 실패했습니다");
}
// 대상 디렉토리로 전환하십시오
$remote_dir = "/path/to/your/dir";
if (!ftp_chdir($conn_id, $remote_dir)) {
ftp_close($conn_id);
die("디렉토리를 전환하지 못했습니다: {$remote_dir}");
}
// 디렉토리 목록을 가져옵니다,비슷한 ls -l 산출
$raw_list = ftp_rawlist($conn_id, ".");
// 각 라인을 구문 분석합니다,示例산출解析结果
foreach ($raw_list as $line) {
/**
* 일반적인 형식 예제:
* -rw-r--r-- 1 owner group 1234 May 25 12:34 filename.txt
* drwxr-xr-x 2 owner group 4096 Apr 10 2023 dirname
*
* 정기적 인 설명:
* ^([\-ld]) 파일 유형:-일반 파일,l기호 링크,d목차
* ([rwx\-]{9}) 권한9성격
* \s+\d+\s+ 공간+숫자(링크 수) + 공간
* (\S+)\s+ 소유자
* (\S+)\s+ 그룹
* (\d+)\s+ 파일 크기
* (\w{3})\s+ 월 약어
* (\d{1,2})\s+ 날짜
* ([\d:]{4,5}|\d{4})\s+ 시간 또는 연도
* (.+)$ 파일 이름
*/
$pattern = '/^([\-ld])([rwx\-]{9})\s+\d+\s+(\S+)\s+(\S+)\s+(\d+)\s+(\w{3})\s+(\d{1,2})\s+([\d:]{4,5}|\d{4})\s+(.+)$/';
if (preg_match($pattern, $line, $matches)) {
list(, $type, $perms, $owner, $group, $size, $month, $day, $time_or_year, $filename) = $matches;
echo "유형: " . ($type === 'd' ? '목차' : ($type === '-' ? '문서' : '링크')) . "\n";
echo "권한: $perms\n";
echo "소유자: $owner\n";
echo "그룹: $group\n";
echo "크기: $size 바이트\n";
echo "수정 시간: $month $day $time_or_year\n";
echo "파일 이름: $filename\n";
echo "---------------------\n";
} else {
echo "선을 구문 분석 할 수 없습니다: $line\n";
}
}
// 연결을 닫으십시오
ftp_close($conn_id);
?>