개발자 Q&A

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

2025.03.08 11:08

gzinflate 함수 사용 중 오류가 발생합니다.

목록
  • MariaDB장인 12일 전 2025.03.08 11:08
  • 2
    1
저는 PHP에서 gzinflate 함수를 사용하여 압축된 데이터를 압축해제하려고 합니다. 하지만, 압축된 데이터를 정확하게 압축해제하지 못하는 오류가 발생합니다. gzinflate 함수의 인자로 전달하는 압축된 데이터가 gzip 압축 형식일 때 오류가 발생하지 않습니다.

문제는, gzinflate 함수의 인자로 전달하는 압축된 데이터가 gzip 압축 형식이 아닌 다른 형식일 때 오류가 발생하는 것입니다. gzinflate 함수의 인자로 전달하는 압축된 데이터의 형식을 파악하는 방법을 알고 싶습니다. gzinflate 함수의 인자로 전달하는 압축된 데이터의 형식이 gzip 압축 형식인지 다른 형식인지 구별하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    PHP의 gzinflate 함수는 gzip 압축 형식의 데이터를 압축해제할 때만 정확하게 작동합니다. 다른 형식의 압축 데이터를 인자로 전달하면 오류가 발생합니다.

    압축된 데이터의 형식을 파악하는 방법은 다음과 같습니다.

    1. file_get_contents() 함수 사용: 압축된 데이터를 읽어온 후, file_get_contents() 함수를 사용하여 데이터의 MIME 타입을 확인할 수 있습니다. MIME 타입이 application/gzip 인 경우 gzip 압축 형식입니다.
    2. bin2hex() 함수 사용: 압축된 데이터를 읽어온 후, bin2hex() 함수를 사용하여 데이터의 바이너리 코드를 16진수 코드로 변환할 수 있습니다. gzip 압축 형식의 데이터는 특정 패턴을 보입니다. 예를 들어, gzip 압축 형식의 데이터는 항상 31 0x1f 0x8b 0x08로 시작합니다.
    3. fopen() 함수 사용: 압축된 데이터를 읽어온 후, fopen() 함수를 사용하여 데이터를 읽어올 수 있습니다. fopen() 함수의 인자로 'rb' 모드를 사용하여 바이너리 데이터를 읽어올 수 있습니다.

    압축된 데이터의 형식을 구별하는 방법은 다음과 같습니다.

    1. MIME 타입 확인: file_get_contents() 함수를 사용하여 데이터의 MIME 타입을 확인합니다. MIME 타입이 application/gzip 인 경우 gzip 압축 형식입니다.
    2. 바이너리 코드 확인: bin2hex() 함수를 사용하여 데이터의 바이너리 코드를 16진수 코드로 변환합니다. gzip 압축 형식의 데이터는 특정 패턴을 보입니다.
    3. 파일 형식 확인: fopen() 함수를 사용하여 데이터를 읽어올 수 있습니다. fopen() 함수의 인자로 'rb' 모드를 사용하여 바이너리 데이터를 읽어올 수 있습니다.

    예를 들어, gzip 압축 형식의 데이터를 읽어올 때는 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $compressed_data = file_get_contents('compressed_data.gz');
    
    if (strpos(bin2hex($compressed_data), '31 0x1f 0x8b 0x08') !== false) {
    
        echo 'gzip 압축 형식입니다.';
    
    } else {
    
        echo 'gzip 압축 형식이 아닙니다.';
    
    }
    
    


    위 코드는 gzip 압축 형식의 데이터를 읽어올 때, 바이너리 코드를 16진수 코드로 변환하여 gzip 압축 형식인지 확인합니다.

    2025-03-08 11:09

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

검색

게시물 검색