<?php
$ftp_server = 'ftp 주소';
$ftp_username = '계정';
$ftp_password = '패스워드';
$folder_path = '경로';
// FTP 연결 설정
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
ftp_pasv($conn_id, true);
if ($conn_id && $login_result) {
// 폴더 크기 확인 함수 호출
$folder_size = getFtpFolderSize($conn_id, $folder_path);
if ($folder_size !== false) {
echo "FTP 폴더 용량: " . formatBytes($folder_size) . "\n";
} else {
echo "폴더 용량을 확인할 수 없습니다.\n";
}
ftp_close($conn_id);
} else {
echo "FTP 서버 연결에 실패하였습니다.\n";
}
// FTP 폴더 크기 확인 함수
function getFtpFolderSize($ftp_conn, $folder_path)
{
$folder_size = 0;
$files = ftp_nlist($ftp_conn, $folder_path);
if ($files !== false) {
foreach ($files as $file) {
$file_path = $folder_path . '/' . $file;
$response = ftp_raw($ftp_conn, "SIZE $file_path");
if (preg_match("/^(\\d{3}) (.*)$/", $response[0], $matches) == 0) throw new Exception("Unable to parse FTP reply: ".$response[0]);
//return $tempfile_size[2]
$tempfile_size = list($response, $responseCode, $responseMessage) = $matches;
if (ftp_size($ftp_conn, $file_path) == -1) {
$folder_size = getFtpFolderSize($ftp_conn, $file_path);
} else {
// 정수화한다.
$folder_size += (int)$tempfile_size[2];
}
}
} else {
return false;
}
return $folder_size;
}
// 바이트 단위를 용량 표시로 변환하는 함수
function formatBytes($size, $precision =4)
{
$unit = ['Byte','KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
for($i = 0; $size >= 1024 && $i < count($unit)-1; $i++){
$size /= 1024;
}
return round($size, $precision).' '.$unit[$i];
}
?>
'php' 카테고리의 다른 글
aws s3 폴더 내 파일 개수 구하기 (0) | 2023.08.09 |
---|---|
php ftp 함수 (0) | 2023.08.07 |
php Google AndroidPublisher reviews api (0) | 2021.02.10 |
[PHP] 게시글 자동 등록 방지(회원 자동 가입 방지)코드 만들기 - CAPTCHA_퍼옴 (0) | 2013.12.05 |
memcache restart (0) | 2013.12.04 |