Home  >  Article  >  Backend Development  >  Explanation on how to use php to operate zip and display the pictures in the compressed package without decompressing the package.

Explanation on how to use php to operate zip and display the pictures in the compressed package without decompressing the package.

jacklove
jackloveOriginal
2018-07-07 17:57:463345browse

This article briefly introduces how to directly display the pictures or files in the ZIP compressed package without decompressing it in PHP. The method is very simple and mainly uses the Zip File series functions and base64_encode function in PHP. I hope it can be helpful to everyone. Inspired

Everyone should know how to do the basic method of operating ZIP compressed file with PHP. (If you don’t know, you can learn the basic method of operating ZIP with PHP at the bottom of this article. method), then how to directly read the files in the compressed package without decompressing it, such as directly displaying the pictures in the compressed package on the page? The following will show you how to directly display the image files in the compressed package without decompressing

$zip_path = '12.zip';//压缩包实际路径
$zip = zip_open($zip_path);//利用zip_open函数打开压缩包
while ($re = zip_read($zip)) {//读依次读取包中的文件
 if (!zip_entry_filesize($re)) break;//如果文件大小为0退出操作
 $entry_zp = zip_entry_open($zip,$re,'rb');//读取包中文件
 $ext = pathinfo(zip_entry_name ($re),PATHINFO_EXTENSION);//获取图片文件扩展名
 $buf = zip_entry_read($re,zip_entry_filesize($re));//读取文件二进制数据
 echo sprintf(&#39;<img src="data:image/%s;base64,%s">&#39;, $ext, base64_encode($buf));//利用base64_encode函数转换读取到的二进制数据并输入输出到页面中
 zip_entry_close($re);//关闭打开的压缩包中的文件
}
zip_close($zip);//关闭压缩包文件


The most important thing about this code is to use base64_encode to convert the binary data of the image file into browser-readable Base64 image data

Note: When using PHP's ZIP FILE series of functions, please confirm that the php_zip.dll extension library has been enabled in your PHP.ini file, and whether there is php_zip.dll in the ext folder in the PHP installation directory (I am using a Windows system ). If php_zip.dll does not exist, you can go to the following PHP official PECL expansion package site to obtain

PHP official PECL expansion package site address: http://pecl.php.net/package/zip

Select the compressed package corresponding to your PHP version;

Under Windows, you can directly drag and drop the php_zip.dll file in the compressed package to the ext folder in the PHP installation directory;

Linux system needs to be compiled Then modify the PHP configuration file

Attach the basic functions of PHP operating Zip File


Functionzip_close()zip_entry_close()zip_entry_compressedsize()zip_entry_compressionmethod()zip_entry_filesize()zip_entry_name()zip_entry_open()zip_entry_read()zip_open()zip_read()
Description PHP
Close the ZIP file. 4
Close an entry in a ZIP file. 4
Returns the compressed size of an item in the ZIP file. 4
Returns the compression method of an entry in a ZIP file. 4
Returns the actual file size of an entry in a ZIP file. 4
Returns the name of an entry in the ZIP file. 4
Open an entry in a ZIP file for reading. 4
Read an open entry in a ZIP file. 4
Open the ZIP file. 4
Read the next item in the ZIP file. 4

Articles you may be interested in:

How to implement the check-in function in php Detailed explanation of example analysis


Detailed explanation of solving the problem of memory exhaustion caused by too many php-fpm processes under Linux


php Detailed analysis of method examples to implement the check-in function


The above is the detailed content of Explanation on how to use php to operate zip and display the pictures in the compressed package without decompressing the package.. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn