PHP에서 FTP_RAWLIST 기능은 매우 유용한 도구이며 종종 FTP 서버의 지정된 디렉토리에 파일 및 하위 디렉토리를 나열하는 데 사용됩니다. 이 기능을 통해 파일 권한, 파일 크기, 마지막 수정 시간 및 기타 정보를 포함하여 FTP 서버에서 세부 파일 및 디렉토리 목록을 얻을 수 있습니다. 경우에 따라 FTP 경로가 파일인지 디렉토리인지 확인해야합니다. 현재 FTP_Rawlist 기능의 출력 정보를 사용하여 판단을 내릴 수 있습니다.
FTP_Rawlist 기능의 기능은 FTP 서버에서 지정된 디렉토리의 파일 목록을 얻고 목록의 자세한 정보를 반환하는 것입니다. 기본 구문은 다음과 같습니다.
ftp_rawlist(ftp_stream, directory);
FTP_STREAM : 유효한 FTP 연결 리소스.
디렉토리 : 나열하려는 파일 또는 디렉토리의 경로.
이 함수는 배열을 반환하고 각 배열 요소는 FTP 서버의 파일 또는 디렉토리에 대한 정보 줄을 나타냅니다. 정보의 형식은 일반적으로 파일 또는 디렉토리, 소유자, 파일 크기, 수정 시간 등에 대한 권한을 포함한 Unix 스타일 목록입니다.
FTP_Rawlist가 반환 한 데이터를 통해 경로가 파일인지 디렉토리인지 여부를 결정할 수 있습니다. 그러한 판단을 내리려면 일반적으로 반환 된 각 정보 라인의 첫 번째 특성에 따라 다릅니다.
첫 번째 문자가 D 인 경우 항목이 디렉토리임을 의미합니다.
첫 번째 문자가 - 이면 항목이 파일임을 의미합니다.
따라서 경로 유형을 결정하기 위해 반환 된 첫 번째 줄의 내용 만 확인하면됩니다. 특정 구현은 다음 코드 예제를 참조하십시오.
<?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>";
}
?>
이 예에서는 먼저 FTP 서버에 연결하고 로그인합니다. 다음으로 FTP_RAWLIST 기능을 사용하여 지정된 경로 위의 디렉토리의 파일 목록을 가져옵니다. 그런 다음 반환 된 파일 목록을 통과하고 항목이 각 줄의 첫 번째 문자를 기반으로 파일인지 디렉토리인지 결정합니다. 마지막으로 결과 출력을 판단합니다.
경로가 기호 링크 인 경우 FTP_Rawlist 가 반환 한 내용이 더 복잡 할 수 있으며 추가 처리가 필요합니다.
FTP_RAWLIST 의 출력은 일반적으로 FTP 서버의 구성에 따라 다릅니다. 다른 FTP 서버는 다른 파일 정보 형식을 반환 할 수 있으므로 특정 서버에 따라 구문 분석 규칙을 조정해야합니다.
이 예제는 경로가 파일 또는 디렉토리의 직접 자식이라고 가정합니다. 대상 경로에 하위 디렉토리가 포함 된 경우, FTP_Rawlist 에 대한 재귀 호출이 추가로 확인해야 할 수 있습니다.
FTP_Rawlist 함수를 통해 FTP 서버의 경로가 파일인지 디렉토리인지 쉽게 결정할 수 있습니다. 반환 된 파일 정보를 구문 분석하고 첫 번째 문자를 기반으로 D (디렉토리) 또는 - (파일)인지 판단하면 정확한 판단을 할 수 있습니다. 이 방법은 대부분의 FTP 서버에서 작동하며 FTP에서 파일 및 디렉토리를 더 잘 관리하는 데 도움이 될 수 있습니다.