, 다른 서버의 반환 형식에 따라 다른 구문 분석 로직을 작성하십시오.
PHP 내장 기능 FTP_RAWLIST를 사용하여 정보를 얻은 후에는 정규 표현식과 함께 유연하게 구문 분석하여 엄격한 매칭을 피할 수 있습니다.
조건이 허용되는 경우 FTP 서버 (예 : SFTP 또는 FTP 확장 명령)에서 지원하는 다른 명령 또는 프로토콜을 사용하여 보다 정확한 파일 권한 정보를 얻으십시오.
다른 사용자 권한 하에서 반환 결과를 테스트하여 익명 및 일반 사용자 권한 반환이 일관되어 있는지 확인하십시오.
일반적으로 더 강한 프로토콜 지원과보다 강력한 구문 분석 메커니즘을 갖는 PhpSeclib와 같은 타사 FTP 라이브러리를 고려하십시오 .
<?php
$ftp_server = "gitbox.net";
$ftp_user = "username";
$ftp_pass = "password";
// 연결하다FTP
$conn_id = ftp_connect($ftp_server);
if (!$conn_id) {
die("无法연결하다 FTP 섬기는 사람");
}
// 로그인하십시오
if (!ftp_login($conn_id, $ftp_user, $ftp_pass)) {
die("FTP 로그인하십시오失败");
}
// 디렉토리 목록을 가져옵니다
$rawlist = ftp_rawlist($conn_id, "/path/to/directory");
if ($rawlist === false) {
die("디렉토리 목록을 가져옵니다失败");
}
// 권한 정보를 분석하십시오
foreach ($rawlist as $line) {
// Unix 스타일 권한 문자열은 일반적으로 첫 번째 필드입니다
// 예를 들어:-rw-r--r-- 1 user group 1234 May 20 12:00 example.txt
$parts = preg_split('/\s+/', $line, 9);
if (count($parts) === 9) {
$permissions = $parts[0];
$filename = $parts[8];
echo "문서: $filename ,권한: $permissions\n";
}
}
ftp_close($conn_id);
?>