• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php的ZipArchive类用法实例_PHP

php 搞代码 3年前 (2022-01-25) 22次浏览 已收录 0个评论

本文实例讲述了php的ZipArchive类用法,分享给大家供大家参考。具体如下:

通常来说,php5.2开始支持ZipArchive类,php4只能使用zip函数。其实在官方实现zip类之前,已经有大牛贡献了打包解压zip文件的方法。现在php包含了ZipArchive类,当然优先使用。使用该类能创建和解压zip文件,也能直接读取zip压缩包内的内容,很方便,这里主要总结下读取和解压的过程。

解压一个包到指定目录:

<?php<br />$zip = new ZipArchive;<br />if ($zip->open('test.zip') === TRUE) {<br />    $zip->extractTo('/my/destination/dir/');<br />    $zip->close();<br />    echo 'ok';<br />} else {<br />    echo 'failed';<br />}<br />?>

如果只是需要读取包中某个文件的内容,需要文件名或者文件的索引值。

<?php<br />$zip = new ZipArchive;<br />if ($zip->open('test.zip') === TRUE) {<br />    echo $zip->getFromName('example.php');<br />    $zip->close();<br />}<br />?>

如果example.php在某目录下,获取内容时需要加上路径。

如果只知道文件名,而不知到文件的具体路径,可以搜索指定文件名的索引,再依靠索引获取内容。

<?php<br />$zip = new ZipArchive;<br />if ($zip->open('test.zip') === TRUE) {<br />    $index=$zip->locateName('example.php', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR);<br />    $contents = $zip->getFromIndex($index);<br />}<br />?>

上面获取索引依靠 locateName方法,如果压缩包内多个路径下有同名文件,好像只能返回第一个的索引,如果要获取所有同名文件的索引,只能使用笨办法,循环搜索。

<?php<br />$zip = new ZipArchive;<br />if ($zip->open('test.zip') === TRUE) {<br />    for($i <em style="color:transparent">本文来源gao.dai.ma.com搞@代*码#网</em><a>搞代gaodaima码</a>= 0; $i numFiles; $i++)<br />      {<br />           if(substr_count($zip->getNameIndex($i), 'example.php')>0){<br />                $contents = $zip->getFromIndex($i);                            <br />            }<br />       }<br />}<br />?>

希望本文所述对大家的php程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php的ZipArchive类用法实例_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址