In the article, we learn how to get images from URLs and store them in a zip file.
Step 1: Make an array of your image URL.
$img_array = array( 'https://cdn.pixabay.com/photo/2018/01/14/23/12/nature-3082832_960_720.jpg', 'https://cdn.pixabay.com/photo/2020/03/03/20/31/boat-4899802_960_720.jpg', 'https://cdn.pixabay.com/photo/2021/08/25/20/42/field-6574455_960_720.jpg', 'https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885_960_720.jpg' );
Step 2: Use the below code for creates a zip file.
$created_zip = new ZipArchive(); $create_temporary_file = tempnam('.', ''); $created_zip->open($create_temporary_file, ZipArchive::CREATE);
Step 3: Run for each loop of the image array. now get the content image and add it in zipping by using the “addFromString” function.
foreach ($img_array as $img_file) { $download_img_file = file_get_contents($img_file); $created_zip->addFromString(basename($img_file), $download_img_file); }
Step 4: To download the zip file from the browser use the below code.
header('Content-disposition: attachment; filename="images.zip"'); header('Content-type: application/zip'); readfile($create_temporary_file); unlink($create_temporary_file); // unlink is remove the created zip file.
Here is the full code:
<?php $img_array = array( 'https://cdn.pixabay.com/photo/2018/01/14/23/12/nature-3082832_960_720.jpg', 'https://cdn.pixabay.com/photo/2020/03/03/20/31/boat-4899802_960_720.jpg', 'https://cdn.pixabay.com/photo/2021/08/25/20/42/field-6574455_960_720.jpg', 'https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885_960_720.jpg' ); $created_zip = new ZipArchive(); $create_temporary_file = tempnam('.', ''); $created_zip->open($create_temporary_file, ZipArchive::CREATE); foreach ($img_array as $img_file) { $download_img_file = file_get_contents($img_file); $created_zip->addFromString(basename($img_file), $download_img_file); } $created_zip->close(); header('Content-disposition: attachment; filename="images.zip"'); header('Content-type: application/zip'); readfile($create_temporary_file); unlink($create_temporary_file); // unlink is remove the created zip file. ?>
Here is result
Thanks.