[php] PHP에서 ZIP 파일을 만들 때 진행 상황 표시하기

ZIP 파일을 생성할 때 진행 상황을 실시간으로 표시하는 것은 사용자 경험을 향상시키는 데 도움이 됩니다. PHP에서는 ZipArchive 클래스를 사용하여 ZIP 파일을 만들 수 있으며, 생성 과정에서 진행 상황을 표시하기 위해 ob_startob_get_clean 함수를 사용할 수 있습니다. 아래에는 ZIP 파일 생성 과정에서 진행 상황을 표시하는 예제 코드를 제시하겠습니다.

PHP 코드 예제

<?php
$zipFile = 'example.zip';
$files = array('file1.txt', 'file2.txt', 'file3.txt');

$zip = new ZipArchive();
if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE) {
    foreach ($files as $file) {
        $zip->addFile($file);
        ob_start(); // 버퍼링 시작
        $status = $zip->status;
        ob_end_clean(); // 버퍼 비우기
        echo "파일 '{$file}'을(를) 압축 중... (진행 상황: {$status}%)\n";
        flush(); // 출력 버퍼 비우기
    }
    $zip->close();
    echo 'ZIP 파일 생성 완료';
} else {
    echo 'ZIP 파일을 열 수 없음';
}
?>

위의 예제 코드에서 ob_start 함수를 사용하여 출력을 버퍼링하고, ob_get_clean 함수를 사용하여 버퍼를 비우는 데 주의해야 합니다. 또한, flush 함수를 사용하여 출력 버퍼를 비우므로 실시간으로 진행 상황을 표시할 수 있습니다.

ZIP 파일 생성 과정에서 진행 상황을 표시하는 방법을 포함하여 현재 작업 중인 파일과 진행 상황을 사용자에게 효과적으로 전달할 수 있습니다.

참고 자료