我希望直接用fopen函数直接打开压缩包内的一个文件,
如果是zip格式,则可用以下方法打开
$fp = fopen("zip:///tmp/12.zip#myfilein.txt", "r");但同样的方法便无法操作gzip格式的压缩包?
每当如下如下方式打开的时候,都被告知 failed to open stream: operation failed 错误
fopen("compress.zlib:///tmp/12.tar.gz#myfilein.txt", "r");ps:仔细查了很多遍,压缩包的路径以及压缩包内部的那个文件都是存在的,想知道这种方法针对gz格式的压缩包是不可行呢?还是我用错了方法?
如果是zip格式,则可用以下方法打开
$fp = fopen("zip:///tmp/12.zip#myfilein.txt", "r");但同样的方法便无法操作gzip格式的压缩包?
每当如下如下方式打开的时候,都被告知 failed to open stream: operation failed 错误
fopen("compress.zlib:///tmp/12.tar.gz#myfilein.txt", "r");ps:仔细查了很多遍,压缩包的路径以及压缩包内部的那个文件都是存在的,想知道这种方法针对gz格式的压缩包是不可行呢?还是我用错了方法?
解决方案 »
- discuz中未登录收藏的问题,大家进来看下。
- 考你个基础题,答对赏分
- 交流用PlChart类做走势图经验
- 一道很简单的题目。PHP.Linux.Ajax-JQUERY
- 求模板IF语句判断来路
- php代码解释
- windows下搭建Apache+PHP+MySQL服务器
- 解析XML问题
- 高手帮忙!如何解决MYSQL语句在PHP里的难题?求救!!!
- 怎样判断ip地址所在地?比如上海用户登录我们的网站自动跳转到上海的域名
- php 操作远程文本文件
- 求助:Cannot modify header information - headers already sent by (output started at
试试可能编码格式上有差异
徐老大你好,compress.bzip2也试了,跟zlib的结果是一样的,我觉得这样不行是有他的道理的,
不同于zip格式,gz和bz2对目录的压缩都是先用tar打包然后再压缩tar文件,也就是gz和bz2不借助tar的情况下只能压缩文件。
zip对于目录则是打包且压缩,并且内建了目录结构,这样便可以用路径的方法直接访问到压缩进去的文件。以上是我的理解,如不对请斧正。另外问一下,有没有别的办法解决我的问题?因为bz2和gz压缩效率相对zip大不少,我还是倾向于使用这两种格式,但就是没有找到方法直接定位压缩进去的文件并对其进行操作。谢谢
不是要分析编码,是希望在php程序中够访问到压缩包中的文件
试过了,最开始用得就是,对于将若干文件压缩而成的.gz文件,这些函数只能读出tar文件的内容,而不像ZipArchive类能像处理目录一样在zip文件内添加目录、增删文件等。这是我目前只能用zip格式的原因。如果也能做到ZipArchive一样,就用.gz或.bz2格式