개발자의 끄적끄적

[PHP] 파일 크기, 사이즈 불러오는 함수, Filesize() [펌] 본문

개발/php

[PHP] 파일 크기, 사이즈 불러오는 함수, Filesize() [펌]

효벨 2020. 6. 14. 03:00
728x90
반응형

[PHP] 파일 크기, 사이즈 불러오는 함수, Filesize() [펌]

 

PHP 언어에서 파일의 크기를 알아내려면 어떻게 해야할까요? 간단한 방법으로 php에서 제공하는 filesize() 함수를 이용하는 방법이 있습니다.이 함수는 해당하는 파일의 크기를 반환합니다. 사용방법은 매우 간단하여 아래와 같은 형식으로 사용할 수 있습니다. 전달 할 인자에는 해당하는 파일이름을 넣어줍니다.

filesize(해당하는 파일이름)

 


// 파일이름 필수사항

함수를 실행시킬 경우 해당하는 파일의 사이즈를 확인하여 반환합니다. 참고로 이때 반환하는 값의 기본 단위는 byte입니다. 그렇기때문에 만약Kbyte단위의 값이 필요하다면 간단하게 1024를 나누면 원하는 값을 구할 수 있을 것입니다. 그럼 아래의 예제와 함께 알아보시기 바랍니다.

 

# filesize() 함수 예제소스 보기아래는 특정 이미지 파일의 크기를 알아내어 kbyte로 표기하는 방법에 대한 간단한 예제소스입니다. 실제로 현재 서버에 저장되 있는 이미지의 크기를 예로 사용하였습니다. 그럼 아래 코드를 확인하세요.

<?php  
   $imageSize = filesize(./images/galleryImg\_01.jpg) / 1024;  
   //  파일의 크기를 알아낸 후 1024로 나누어 kbyte 단위로 계산  

   $imageSize = floor($imageSize);  
   // 소수점 제거를 위해 floor를 사용  

   echo $imageSize.' KB';  
?>

실행한 결과 아래와 같이 나타났습니다.

 

542 KB

// 계산된 결과로 542 KB를 출력함

 

위 예제소스를 사용하여 우리가 원하는 파일단위의 값을 구하였습니다. 만약 단순하게 byte가 아니라 더 많은 단위를 간략하게 표기위한 방법은 없을까요? 아래와 같이 단위로 구분하여 출력하는 함수를 만들어 사용하면 매우 편리할 것입니다. 아래의 소스코드를 참고하세요.

 

# 사이즈를 구분 가능한 단위로 바꾸어 출력하는 함수 소스 보기위와 같이 사이즈 값을 불러온 경우 이를 표현하기 위해 각각의 단위별로 바꾸는 작업이 필요하죠. 아래는 각각의 단위로 바꾸어 출력하는 방법입니다.

 

<?php  
  function formatSize($bytes, $decimals = 2) {  
    $size = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');  
    $factor = floor((strlen($bytes) - 1) / 3);  
    return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$size\[$factor\];  
  }  
?>

위의 사용자 함수formatSize()는 앞의 인자에는 확인할 파일을... 뒤에는 나타낼 소수점을 사용할 수 있습니다. 만약 512,000 byte의 파일을 위 함수를 사용해 확인하면 다음과 같이 결과가 나타나게됩니다.

 

<?php  
   $test = 512000;  
   echo formatSize($test);  
?>  

 

512.00KB


// 출력결과로 512.00KB를 반환하였음

매우 편리하게 원하는 단위의 값을 읽기 쉽도록 변환해주는 함수입니다.

 

출처 : https://webisfree.com/2016-05-22/[php]-%ED%8C%8C%EC%9D%BC-%ED%81%AC%EA%B8%B0-%EC%82%AC%EC%9D%B4%EC%A6%88-%EB%B6%88%EB%9F%AC%EC%98%A4%EB%8A%94-%ED%95%A8%EC%88%98-filesize()

반응형
Comments