Maison  >  Article  >  développement back-end  >  PHP exploite zip pour afficher les images dans le package compressé sans décompresser les astuces package_php

PHP exploite zip pour afficher les images dans le package compressé sans décompresser les astuces package_php

韦小宝
韦小宝original
2017-12-04 11:19:032304parcourir

Cet article présente brièvement comment afficher directement les images ou les fichiers dans le package compressé ZIP sans le décompresser lors de l'utilisation de PHP La méthode est très simple et utilise principalement les fonctions de PHP Série Zip File fonctions, fonction base64_encode, j'espère que cela pourra inspirer tout le monde et améliorer leur technologie PHP.

Tout le monde devrait savoir comment utiliser la méthode de base pour exploiter les fichiers compressés ZIP en PHP (si vous ne le savez pas, vous pouvez apprendre la méthode de base pour utiliser ZIP en PHP au bas de cet article), puis comment lire la compression directement sans la décompresser ? Qu'en est-il des fichiers du package, comme l'affichage des images du package compressé directement sur la page ?

Ce qui suit vous montrera comment afficher directement les fichiers image dans le package compressé sans décompression


$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);//关闭压缩包文件



La chose la plus importante à propos de ce code est d'utiliser base64_encode pour convertir les données binaires du fichier image en données d'image Base64 lisibles par le navigateur

Remarque : lors de l'utilisation de PHP Lors de l'utilisation la série de fonctions ZIP FILE, veuillez confirmer que la bibliothèque d'extension php_zip.dll a été activée dans votre fichier PHP.ini et s'il y a php_zip.dll dans le dossier ext du répertoire d'installation PHP (j'utilise un système Windows) . Si php_zip.dll n'existe pas, vous pouvez vous rendre sur le site officiel du package d'extension PECL PHP suivant pour l'obtenir

Adresse du site officiel du package d'extension PECL PHP : http://pecl.php.net/package/zip

Choisissez le package compressé correspondant à votre version de PHP ;

Sous Windows, vous pouvez directement glisser-déposer le fichier php_zip.dll du package compressé vers le dossier ext du répertoire d'installation de PHP
Le système Linux doit être compilé. Modifiez ensuite le fichier de configuration PHP

et attachez les fonctions de base de PHP pour faire fonctionner Zip File



函数 描述 PHP
zip_close() 关闭 ZIP 文件。 4
zip_entry_close() 关闭 ZIP 文件中的一个项目。 4
zip_entry_compressedsize() 返回 ZIP 文件中的一个项目的被压缩尺寸。 4
zip_entry_compressionmethod() 返回 ZIP 文件中的一个项目的压缩方法。 4
zip_entry_filesize() 返回 ZIP 文件中的一个项目的实际文件尺寸。 4
zip_entry_name() 返回 ZIP 文件中的一个项目的名称。 4
zip_entry_open() 打开 ZIP 文件中的一个项目以供读取。 4
zip_entry_read() 读取 ZIP 文件中的一个打开的项目。 4
zip_open() 打开 ZIP 文件。 4
zip_read() 读取 ZIP 文件中的下一个项目。 4
Ce qui précède représente tout le contenu du zip d'exploitation PHP pour afficher les images dans le package compressé sans décompresser le package. J'espère que cela sera utile à tout le monde et permettra à chacun de s'améliorer.

Recommandations associées :

Tutoriel Zip_PHP sur le fonctionnement PHP

PHP exploite Zip

Explication détaillée de l'instance de classe de fichier zip générée par PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn