Explication sur la façon d'utiliser php pour faire fonctionner zip et afficher les images dans le package compressé sans décompresser le package.

jacklove
Libérer: 2023-04-02 21:18:01
original
3327 Les gens l'ont consulté

Cet article présente brièvement comment afficher directement les images ou les fichiers dans le package compressé ZIP sans le décompresser en PHP. La méthode est très simple et utilise principalement les fonctions de la série Zip File et la fonction base64_encode en PHP. utile à tout le monde. Inspiré

Tout le monde devrait connaître la méthode de base pour utiliser le fichier de package compressé ZIP avec PHP (si vous ne savez pas, vous pouvez apprendre les bases méthode d'exploitation de ZIP avec PHP en bas de cet article), alors comment lire directement les fichiers du package compressé sans le décompresser, comme par exemple afficher directement les images du package compressé sur la page ?

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

$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);//关闭压缩包文件
Copier après la connexion


L'essentiel 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 : Lorsque vous utilisez les fonctions de la série ZIP FILE de PHP, veuillez confirmer que la bibliothèque d'extensions php_zip.dll a été activée dans votre fichier PHP.ini et s'il existe php_zip.dll dans le dossier ext du répertoire d'installation de PHP (j'ai utilisé le 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

Joignez les fonctions de base du fichier Zip d'exploitation PHP


函数 描述 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

Vous pourriez être intéressé Article :

Analyse détaillée d'exemples d'implémentation de la fonction d'enregistrement en php

Résoudre le problème de épuisement de la mémoire causé par trop de processus php-fpm sous Linux Explication détaillée

Explication détaillée d'un exemple d'analyse de la méthode d'implémentation de la fonction d'enregistrement en 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal