PHP解压缩zip文件代码实现
在具体网站编程项目中,有时候要使用PHP脚本代码的方式来控制压缩和解压zip文件。下面是一个简单的php的zip解压缩实现代码,需要的朋友可以参考下仔细的研究了一下。
PHP安装后自带 zip 扩展 ,首先我们需要开启它,把 php.ini 中的 extension=php_zip.dll 前面的分号去掉就,接着重启web服务器即可。
php的zip解压缩实现代码如下:
<?php</p><p>//需开启配置 php_zip.dll</p>//phpinfo();<br /><p>header("Content-type:text/html;charset=utf-8");</p><p>function get_zip_originalsize($filename, $path) {</p> //先判断待解压的文件是否存在<br /> if(!file_exists($filename)){<br /> die("文件 $filename 不存在!");<br /> } <br /> $starttime = explode(' ',microtime()); //解压开始的时间<br /><br /> //将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到<br /> $filename = iconv("utf-8","gb2312",$filename);<br /> $path = iconv("utf-8","gb2312",$path);<br /> //打开压缩包<br /> $resource = zip_open($filename);<br /> $i = 1;<br /> //遍历读取压缩包里面的一个个文件<br /> while ($dir_resource = zip_read($resource)) {<br /> //如果能打开则继续<br /> if (zip_entry_open($resource,$dir_resource)) {<br /> //获取当前项目的名称,即压缩包里面当前对应的文件名<br /> $file_name = $path.zip_entry_name($dir_resource);<br /> //以最后一个“/”分割,再用字符串截取出路径部分<br /> $file_path = substr($file_name,0,strrpos($file_name, "/"));<br /> //如果路径不存在,则创建一个目录,true表示可以创建多级目录<br /> if(!is_dir($file_path)){<br /> mkdir($file_path,0777,true);<br /> }<br /> //如果不是目录,则写入文件<br /> if(!is_dir($file_name)){<br /> //读取这个文件<br /> $file_size = zip_entry_filesize($dir_resource);<br /> //最大读取6M,如果文件过大,跳过解压,继续下一个<br /> if($file_size<(1024*1024*6)){<br /> $file_content = zip_entry_read($dir_resource,$file_size);<br /> file_put_contents($file_name,$file_content);<br /> }else{<br /> echo "<p> ".$i++." 此文件已被跳过,原因:文件过大, -> ".iconv("gb2312","utf-8",$file_name)." </p>";<br /> }<br /> }<br /> //关闭当前<br /> zip_entry_close($dir_resource);<br /> }<br /> }<br /> //关闭压缩包<br /> zip_close($resource); <br /> $endtime = explode(' ',microtime()); //解压结束的时间<br /> $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);<br /> $thistime = round($thistime,3); //保留3为小数<br /> echo "<p>解压完毕!,本次解压花费:$thistime 秒。</p>";<br /><p>}</p><p>$size = get_zip_originalsize('test.zip','./');</p><p>?></p>
测试解压了一个300多KB的小文件,花了0.115秒,测试解压了一个30多MB的(网页文件,小文件比较多),花了20多秒。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Alipay PHP ...

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.
