php ziparchive(),php的ZipArchive类用法实例

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

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

解压一个包到指定目录:

$zip = new ZipArchive;

if ($zip->open('test.zip') === TRUE) {

$zip->extractTo('/my/destination/dir/');

$zip->close();

echo 'ok';

} else {

echo 'failed';

}

?>

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

$zip = new ZipArchive;

if ($zip->open('test.zip') === TRUE) {

echo $zip->getFromName('example.php');

$zip->close();

}

?>

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

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

$zip = new ZipArchive;

if ($zip->open('test.zip') === TRUE) {

$index=$zip->locateName('example.php', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR);

$contents = $zip->getFromIndex($index);

}

?>

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

$zip = new ZipArchive;

if ($zip->open('test.zip') === TRUE) {

for($i = 0; $i < $zip->numFiles; $i++)

{

if(substr_count($zip->getNameIndex($i), 'example.php')>0){

$contents = $zip->getFromIndex($i);

}

}

}

?>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql 除以_不可思议的SQL排名函数,被您无视了么?

经常写SQL脚本的朋友&#xff0c;对查询的多样化要求可能会经常头疼。数据库SQL的语法是固定的、但应用要求却是千差万别的。依靠我们所掌握的知识&#xff0c;大部分的查询需求我们还是有办法的解决的&#xff0c;但总有那么一些要求&#xff0c;把我们搞的非常被动。今天我们…

自制hdmi线一头改vga图_VGA连接线接口定义及引线焊接教程,VGA线不够长时可用网线代替?...

最近做的多媒体功能插座&#xff0c;含有VGA、HDMI、网口、音频输入等接口&#xff0c;由于穿线时没有穿成品线缆&#xff0c;VGA和HDMI接头需要焊接&#xff0c;那么怎么焊接呢&#xff1f;VGA接口15根针&#xff0c;其对应接口定义如下&#xff0c;其下图&#xff1a;一般在V…

sql 分组求和_数据仓库工具–Hive(归纳笔记第六部分:SQL练习)

写在开头&#xff1a;本章是Hive教程第六部分&#xff0c;着重于归纳SQL编写。文章内容输出来源&#xff1a;拉勾教育大数据高薪训练营。本章将介绍Hive中常见的面试题和自己的解答思路&#xff0c;以供大家训练和记忆。SQL面试题1、求连续7天登录的用户— 数据。uid dt status…

Tableau上面地图与条形图结合_何为计算的详细级别,认识Tableau中的Level of Detail...

何为详细级别详细级别&#xff0c;英文Level of detail&#xff0c;Tableau用它来描述计算发生的级别&#xff0c;或者说计算在哪个层级发生。由于BI工具的相似性&#xff0c;在Power BI里也可以用类似的思想对计算进行描述&#xff0c;但Power BI并没有与之对应的专门的词汇。…

java 异步读表,Java实现异步回调-Go语言中文社区

回调(callback)在我们做工程过程中经常会使用到&#xff0c;今天想整理一下回调的原理和使用方法。回调的原理可以简单理解为&#xff1a;A发送消息给B&#xff0c;B处理完后告诉A处理结果。再简单点就是A调用B&#xff0c;B调用A。那么是如何实现的呢&#xff1f;一般而言&…

matlab207a,MATLAB教程R2012a课后习题答案

错误发生的根源&#xff0c;并改正之。〖目的〗● 正确理解sum 的工作机理。 ● reshape 的应用。 〖解答〗(1)企图用以下程序完成题目要求。for k10:-1:1 Areshape(1:10*k,k,10);Sa(k,:)sum(A);end Sa Sa 55 55 55 55 55 55 55 55 55 55 3 7 11 15 19 23 27 31 35 39 6 15 24 …

mysql 按时间累计计算_精通MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象&#xff0c;讨论与数据库索引相关的一些话题。特别需要说明的是&#xff0c;mysql支持诸多存储引擎&#xff0c;而各种存储引擎对索引的支持也各不相同&#xff0c;因此MySQL数据库支持多种索引类型&#xff0c;如BTree索引&#xff0c;哈希索引&a…

python访问网页如何查看user-agent_HTTP请求头之User-Agent

前言之前学习北京理工嵩天老师的《Python网络爬虫与信息提取》时&#xff0c;爬取亚马逊的一款图书的详细信息时出现以下错误&#xff1a;![Upload 亚马逊爬虫.PNG failed. Please try again.]查看请求信息&#xff0c;发现我们一般写的爬虫会默认告诉服务器自己发送了一个Pyth…

matlab数据游标属性设置,将节点属性添加到图论图数据提示

绘制具有数据提示的 GraphPlot 对象创建随机有向图的 GraphPlot 图对象。将额外的节点属性 wifi 添加到该图。rng defaultG digraph(sprandn(20, 20, 0.05));G.Nodes.wifi randi([0 1], 20, 1) 1;h plot(G);向图中添加数据提示。利用数据提示&#xff0c;您能够选择图论图中…

matlab 邻近度 离群点_MATLAB自制迷宫游戏,快来试试吧!

前几天给大家介绍了“一行matlab代码可以做哪些匪夷所思的事情”&#xff0c;今天小编带给大家一款酷炫的私人订制版迷宫游戏。这款迷宫游戏包含以下功能&#xff1a;随机生成迷宫地图通过键盘手动求解生成的迷宫MATLAB自动求解生成的迷宫目前主流的生成迷宫的算法有&#xff1…

python中常见的流程_Python面试中最常见的25个问题-结束

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼13)Python中的lambda表达式是什么&#xff1f;lambda表达式是一个匿名函数&#xff0c;通常用作代码行内的嵌入函数。14)为什么Python中的lambda表达式没有声明&#xff1f;Python中的lambda表达式没有声明是因为它只是用来创建一个…

matlab中m文件的作用,M文件主要包含()_matlab中m文件的好处

M文件主要包含()答&#xff1a;M函数文件\n\nM命令文件(脚本文件)" src"" style"max-width: 100%; display: inline;">中国大学MOOC: 在缓冲区分析中二次模型的表示的主体对象对临近对象的影响随距离的增大呈线性衰减。答&#xff1a;错巡航速度是…

xcopy复制文件夹及其子文件_嗨学习:如何给电脑中文件夹设置密码

文件夹怎么设置密码,如何给文件夹设置密码?有些重要的文件或比较隐私的文件存放在电脑上&#xff0c;这些文件我们只希望自己能看到并使用&#xff0c;不希望别人访问。那么&#xff0c;最好的办法就是去对这些文件进行加密。 才不怕别人看到自己的隐私&#xff0c;设置密码&a…

python多线程为什么要用队列_Python程序中的线程操作-线程队列

一、线程队列queue队列&#xff1a;使用import queue&#xff0c;用法与进程Queue一样queue is especially useful in threaded programming when information must be exchanged safely between multiple threads.二、先进先出class queue.Queue(maxsize0)import queueqqueue.…

php的修改数据库语句怎么写,php的数据库修改语句是什么

php的数据库修改语句是UPDATE&#xff0c;用于更新数据库表中已存在的记录&#xff0c;语法为【UPDATE table_name SET column1value, column2value2,...WHERE some_columnsome 】。本教程操作环境&#xff1a;windows7系统、PHP5.6版&#xff0c;DELL G3电脑。UPDATE 语句用于…

ubuntu20.04中安装划词翻译_教你轻松玩转免安装的网页翻译插件“有道网页翻译2.0”...

大家在日常网页浏览中肯定多多少少都会碰到英文网站&#xff0c;这时候往往需要花费非常多的时候去自行理解&#xff0c;效率低下&#xff0c;又或者借助浏览器自带的翻译功能进行翻译&#xff0c;但又可能遇到翻译不准的情况。现在这个问题可以解决啦&#xff01;“有道网页翻…

c语言python零基础教学_编程零基础应当如何开始学习 Python?附教程

零基础学编程&#xff0c;用python入门是个不错的选择&#xff0c;虽然国内基本上还是以c语言作为入门开发语言&#xff0c;但在国外&#xff0c;已经有很多的学校使用python作为入门编程语言。此外&#xff0c;python在机器学习&#xff0c;人工智能领域也非常流行&#xff0c…

python 主要内容,介绍一些有关python的重要内容

Python的参数传递方式是&#xff1a;位置&#xff0c;默认值&#xff0c;变量参数&#xff0c;关键词参数。传值究竟是函数的值传递还是引用传递&#xff0c;要分情况&#xff1a;不变参数用值传递&#xff1a;像整型和string这样的不变对象是通过拷贝来传递的&#xff0c;因为…

系统业务逻辑书籍_「樊登读书会强推:免费送10本绝密书」彻底改变你的逻辑思维能力...

哈喽~你好我是JS-冰冰今天在星巴克喝咖啡整理了一些巨大价值的绝密资料&#xff0c;从过往在樊登读书会整理的10本彻底改变《逻辑思维能力》的绝密电子书。非常实用&#xff0c;对我的改变和提升非常有帮助&#xff0c;所以想把这份改变命运的绝密大礼包也送给需要的小伙伴~(怎…

饿了么风神登录_海底捞首度登陆第三方外卖!联手饿了么全国配送“小火锅”...

近日&#xff0c;“海底捞”正式联手饿了么推出第三方外卖配送服务。据悉&#xff0c;这是海底捞首次与本地生活服务平台合作推出第三方外卖业务。包括上海、济南、福州、郑州等多个城市的用户登录饿了么平台&#xff0c;下单购买海底捞“小火锅”外送等产品后&#xff0c;便可…