개발자 Q&A

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

2025.07.08 15:29

ZipArchive::registerProgressCallback 사용법에 대한 질문

목록
  • WebSocket광 17일 전 2025.07.08 15:29
  • 58
    1
제가 ZipArchive 클래스의 registerProgressCallback 메소드를 사용해 보려고 하는데, 이 메소드가 하는 일과 사용법을 정확히 이해하고 싶습니다.

제가 zip 파일을 압축하는 동안 진행 상황을 표시해 주는 callback 함수를 등록하려는 것입니다. 그러나 registerProgressCallback 메소드의 파라미터와 반환 값에 대한 설명이 잘못된 것 같습니다.

registerProgressCallback 메소드의 파라미터는 Callback 함수가 전달되어야 하는데, Callback 함수의 파라미터는 어떻게 해야 하나요?

Callback 함수의 반환 값은 무엇을 반환해야 하나요?

해당 Callback 함수를 등록하고 나면, zip 파일을 압축하는 동안 진행 상황을 어떻게 표시할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  17일 전



    registerProgressCallback 메소드는 ZipArchive 클래스의 압축 진행 상황을 표시하기 위한 callback 함수를 등록하는 메소드입니다.

    이 메소드의 파라미터는 Callback 함수가 전달되어야 합니다. Callback 함수의 파라미터는 다음 세 가지 인자를 받습니다.

    - int $entryIndex : 현재 처리 중인 파일의 인덱스
    - int $total : 전체 파일 수
    - float $progress : 압축 진행률 (0.0 ~ 1.0)

    Callback 함수의 반환 값은 void 타입이어야 합니다. 즉, Callback 함수는 반환 값을 반환하지 않습니다.

    Callback 함수를 등록하고 나면, zip 파일을 압축하는 동안 진행 상황을 표시할 수 있습니다. 예를 들어, 압축 진행률을 표시하는 callback 함수를 등록할 수 있습니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive;
    
    if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {
    
        $callback = function($entryIndex, $total, $progress) {
    
            echo "압축 진행률 : " . number_format($progress * 100, 2) . "%n";
    
        };
    
        $zip->registerProgressCallback($callback);
    
        // 압축 코드
    
        $zip->close();
    
    } else {
    
        echo "압축 실패n";
    
    }
    
    


    이 예제에서는 압축 진행률을 표시하는 callback 함수를 등록하고, 압축 코드를 실행합니다. 압축 진행률은 callback 함수를 통해 표시됩니다.

    2025-07-08 15:30

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

검색

게시물 검색