I\'ve seen this example on the documentation for PHP readfile
the whole method seems a bit pointless as a physical file actually exists on the server. just use JavaScript to open all the file urls, if you have set the header correctly in your .htaccess file then the files will just download.
I would do something like this
<script>
var files = ['filename1.jpg', 'filename2.jpg'];
for (var i = files.length - 1; i >= 0; i--) {
var a = document.createElement("a");
a.target = "_blank";
a.download = "download";
a.href = 'http://www.example.com/path_to/images/' + files[i];
a.click();
};
</script>
You can't. It's not a PHP limitation, it's an HTTP/Web-Browser limitation. HTTP doesn't provide a mechanism for sending multiple files over one request.
You could, however, have some PHP script that generates multiple iframes, which would initiate one download each, and fake it that way.