What are the advantages of using streams in PHP for handling file operations, such as reading image data from a Zip archive?

When handling file operations like reading image data from a Zip archive in PHP, using streams can offer several advantages. Streams allow for efficient reading of data in smaller chunks, reducing memory usage and improving performance. Additionally, streams provide a convenient way to work with different types of file resources, making it easier to handle various file formats without needing to load the entire file into memory at once.

$zipFile = 'example.zip';
$zip = new ZipArchive;
if ($zip->open($zipFile) === TRUE) {
    $imageData = '';
    for ($i = 0; $i < $zip->numFiles; $i++) {
        $filename = $zip->getNameIndex($i);
        if (pathinfo($filename, PATHINFO_EXTENSION) == 'jpg') {
            $stream = $zip->getStream($filename);
            while (!feof($stream)) {
                $imageData .= fread($stream, 1024); // Read data in smaller chunks
            }
            fclose($stream);
        }
    }
    $zip->close();
}