Here a way to handle specific files from a zip archive without full extract :
<?php
$zip_file = '/path/to/file.zip'; / I wan to get stream a CSV files
$zip = new ZipArchive();
$zip->open($zip_file);
for ($i = 0; $i < $zip->numFiles; $i++) { / Check file by file
$name = $zip->getNameIndex($i); / Retrieve entry name
$extension = pathinfo($name, PATHINFO_EXTENSION);
if ($extension === 'csv') { / I want to handle csv files
$stream = $zip->getStream($name); / No stream index access before PHP 8.2
/ Starting PHP 8.2 $zip->getStreamIndex() or $zip->getStreamName()
/ Do stuff with $stream
/ ...
}
}