What are some workarounds for outputting multiple files in PHP?

When needing to output multiple files in PHP, one workaround is to use a zip archive to bundle the files together and provide a single download link for the user. This allows for easier management and downloading of multiple files at once.

// Create a zip archive
$zip = new ZipArchive;
$zipName = 'files.zip';
if ($zip->open($zipName, ZipArchive::CREATE) === TRUE) {
    // Add files to the zip archive
    $zip->addFile('file1.txt', 'file1.txt');
    $zip->addFile('file2.txt', 'file2.txt');
    $zip->close();
    
    // Set headers for zip file download
    header('Content-Type: application/zip');
    header('Content-Disposition: attachment; filename="' . $zipName . '"');
    readfile($zipName);
    
    // Delete the zip file after download
    unlink($zipName);
}