개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.28 02:15

zip_entry_compressedsize에 대한 질문

목록
  • 자바스크립트귀신 21시간 전 2025.04.28 02:15 새글
  • 4
    1
PHP를 공부하면서 zip_entry_compressedsize에 대해 이해가 잘 안 갈 때가 있습니다.

zip_entry_compressedsize는 PHP의 ZipArchive 클래스를 사용할 때 파일의 압축 크기를 나타내는 속성입니다. 하지만 압축 크기가 실제 파일 크기와 다르게 나타나는 경우가 있습니다.

이러한 경우는 어떻게 설명할 수 있을까요?

아래의 예제 코드에서 zip_entry_compressedsize가 실제 파일 크기와 다르게 나타나는 이유를 알려주세요.

php

$zip = new ZipArchive;

if ($zip->open('example.zip', ZIPARCHIVE::CREATE) === TRUE) {

    $zip->addFile('example.txt');

    echo $zip->statName('example.txt')['com_size'] . "n"; // 압축 크기

    echo $zip->statName('example.txt')['crc32'] . "n"; // CRC32

    $zip->close();

} else {

    echo 'failed';

}



이러한 경우를 해결하기 위해 어떠한 방법이 있을까요?

제가 이해한 바에 따라 올바른 해답을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  21시간 전



    zip_entry_compressedsize는 PHP의 ZipArchive 클래스를 사용할 때 파일의 압축 크기를 나타내는 속성입니다. 하지만 압축 크기가 실제 파일 크기와 다르게 나타나는 경우가 있습니다. 이러한 경우는 다음과 같습니다.

    1. 파일의 헤더 크기: 파일의 헤더 크기는 실제 파일 크기와 다르게 나타날 수 있습니다. 헤더 크기는 파일의 이름, 크기, 타입 등에 따라 달라집니다.
    2. 압축 알고리즘: PHP의 ZipArchive 클래스는 DEFLATE 압축 알고리즘을 사용합니다. 이 알고리즘은 파일의 크기를 줄이기 위해 데이터를 압축합니다. 하지만 압축 알고리즘의 효율성은 파일의 내용에 따라 달라집니다.
    3. CRC32: PHP의 ZipArchive 클래스는 파일의 CRC32 값을 계산합니다. CRC32 값은 파일의 내용을 기반으로 계산되며, 압축 크기와 다르게 나타날 수 있습니다.

    위의 예제 코드에서 zip_entry_compressedsize가 실제 파일 크기와 다르게 나타나는 이유는 다음과 같습니다.

    * `$zip->statName('example.txt')['com_size']`은 압축 크기를 나타내며, 실제 파일 크기와 다르게 나타날 수 있습니다.
    * `$zip->statName('example.txt')['crc32']`은 파일의 CRC32 값을 나타내며, 압축 크기와 다르게 나타날 수 있습니다.

    이러한 경우를 해결하기 위해 다음과 같은 방법이 있습니다.

    1. 파일의 헤더 크기를 제외하고 압축 크기를 계산: 파일의 헤더 크기를 제외하고 압축 크기를 계산할 수 있습니다. 예를 들어, 파일의 헤더 크기는 1024바이트라고 가정할 때, 압축 크기는 다음과 같이 계산할 수 있습니다.

    #hostingforum.kr
    php
    
    $compressedSize = $zip->statName('example.txt')['com_size'] - 1024;
    
    


    2. 압축 알고리즘의 효율성을 개선: 압축 알고리즘의 효율성을 개선할 수 있습니다. 예를 들어, 파일의 내용을 분석하여 압축 알고리즘을 선택할 수 있습니다.
    3. CRC32 값을 무시: CRC32 값을 무시할 수 있습니다. 예를 들어, CRC32 값을 계산하지 않고 압축 크기를 사용할 수 있습니다.

    위의 방법들은 압축 크기가 실제 파일 크기와 다르게 나타나는 경우를 해결할 수 있습니다. 하지만 실제 파일 크기와 압축 크기를 정확히 비교하기 위해서는 파일의 헤더 크기를 제외하고 압축 크기를 계산하는 방법을 사용하는 것이 좋습니다.

    2025-04-28 02:16

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 15,080건 / 14 페이지

검색

게시물 검색