如何使用 PHP 读取 .tar.gz 文件?
我正在构建一个系统,供人们用 PHP 上传 .tar(和 .tar.gz、.tar.bz2、.zip 等)文件。上传文件没问题,但我想在上传后列出存档中包含的文件。
有人可以推荐一个可以读取文件档案的好的 PHP 库吗?
我在 Pear 上找到了 File_Archive,但它已经几年没有更新了。 ZipArchive 对于 .zip 文件非常有用,但我需要可以处理更多文件类型的东西。
更新 我正在 RHEL6、PHP 5.2 和 Apache 2.2 上运行。
I am building a system for people to upload .tar (and .tar.gz, .tar.bz2, .zip, etc) files in PHP. Uploading the files is fine, but I would like to list files contained in the archive after it has been uploaded.
Can someone recommend a good PHP library that can read file archives?
I found File_Archive on Pear but it hasn't been updated in a few years. ZipArchive works great for .zip files, but I need something that can handle more file types.
update I'm running on RHEL6, PHP 5.2, and Apache 2.2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用
PharData
类来执行此 操作:甚至可以与
phar://
流包装器一起使用:如果您没有 Phar,请检查 仅 PHP 实现,或pecl 扩展。
You can do this with the
PharData
class:This even works with the
phar://
stream wrapper:If you don't have Phar, check the PHP-only implementation, or the pecl extension.
不要尝试自己构建这个。使用诸如 http://pear.php.net/package/Archive_Tar 之类的现有类来处理该问题为你。
Don't try to build this yourself. Use an existing class like http://pear.php.net/package/Archive_Tar to handle that for you.
下面的代码读取 .gz zip 文件中的文件
注意,您需要启用 php 的 zip 扩展名才能使此代码正常工作。
The below code reads a file inside a .gz zip file
Note that you need to have the zip extension of php enabled for this code to work.
我认为第一个答案不起作用。或者它只是对我不起作用。 foreach 时无法读取文件内容。我在下面给出我的工作代码。
这适用于 gz、zip、tar 和 bz 文件。
I don't think the first answer works. Or it only doesn't work for me. You could not read file content when you foreach it. I give my working code below.
This works for gz, zip, tar and bz files.
使用 zlib 扩展
Use the zlib extension
坚持使用原始的 tar 库(如果预先安装)怎么样?
How about sticking with the original tar library (if pre-installed)?