我希望直接用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格式的压缩包是不可行呢?还是我用错了方法?
解决方案 »
- 举报倒分贴!!!!!
- PHP中的一面试题目
- [求助]如何在插入數據庫前過濾圖片上的鏈接!
- PHP程序员应该掌握那几个常用框架,ThinkPHP框架用的多不?
- mysql_fetch_array(): supplied argument is not a valid MySQL result resource
- 在线等,帮我看看怎么处理这XML文件
- 求一rewrite rule
- 初/中级PHP和Oracle程序员进,加入交易程序开发团队,在家工作!
- 刚才搜了一下,好像都挺复杂的。
- 网站页面如何删除验证码功能,不影响网站使用。
- 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格式