Home  >  Article  >  Backend Development  >  PHP operates zip to display pictures in the compressed package without decompressing the package_php tips

PHP operates zip to display pictures in the compressed package without decompressing the package_php tips

韦小宝
韦小宝Original
2017-12-04 11:19:032304browse

This article briefly introduces how PHP needs to directly display the pictures or files in the ZIP compressed package without decompressing it. The method is very simple and mainly uses the PHP Zip File series function, base64_encode function, I hope it can inspire everyone and improve their PHP technology.

Everyone should know how to do the basic method of operating ZIP archive files with PHP (if you don’t know, you can learn the basic method of operating ZIP with PHP at the bottom of this article), then how to read the compression directly without decompressing it? What about the files in the package, such as displaying the pictures in the compressed package directly on the page?

The following will show you how to directly display the image files in the compressed package without decompression


$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 When using a 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 configuration file of PHP

Attach the basic functions of PHP to operate Zip File



##zip_close()Close the ZIP file. 4zip_entry_close()Close an entry in a ZIP file. 4zip_entry_compressedsize()Returns the compressed size of an item in the ZIP file. 4zip_entry_compressionmethod()Returns the compression method of an entry in a ZIP file. 4zip_entry_filesize()Returns the actual file size of an entry in a ZIP file. 4zip_entry_name()Returns the name of an entry in the ZIP file. 4zip_entry_open()Open an entry in a ZIP file for reading. 4zip_entry_read()Read an open entry in a ZIP file. 4zip_open()Open the ZIP file. 4zip_read()Read the next item in the ZIP file. 4
Function Description PHP
The above is all the contents of php operating zip to display the pictures in the compressed package without decompressing the package. I hope it can be brought to everyone. Come help so that everyone’s PHP technology can improve.

Related recommendations:

PHP operation Zip_PHP tutorial

PHP operation Zip

php generated zip file class instance detailed explanation

The above is the detailed content of PHP operates zip to display pictures in the compressed package without decompressing the package_php tips. 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