有没有一种使用PHP解压缩.Z文件的方法?

3
有没有一种使用PHP解压.Z文件的方法?

取决于使用的压缩算法,文件来自哪里?如果它只是一个具有另一个扩展名的Zip文件,您应该能够使用http://php.net/manual/en/book.zip.php解压缩它。 - ChrisR
谢谢Chris R,我已经尝试过了,但它并没有起作用...(对.zip文件来说是有效的)...关于我正在尝试解压缩的文件的一些信息:Z扩展名是Unix zip文件,是gz和tar的前身,但仍然在Unix环境中广泛使用-任何想法是否可能使用php解压缩? - jon
2个回答

1

经过一些搜索,我发现.z文件是使用compress程序压缩的文件。如果您的php安装允许shell_exec并且您的Web服务器正在运行unix/linux,则可以在服务器上运行uncompress程序。这是(未经测试的)想法:

<?php
$file = '/tmp/archive.z';
shell_exec("uncompress $file");

谢谢Chris,我会看一下的,但我不认为我能在我的服务器上做到这一点。 - jon
谢谢ChrisR - 这对我很有用: shell_exec(“gunzip $file”); - jon

1
现在,uncompress 只是一个调用带有适当选项的 gzip 的一行代码。要使用 gzip,您不需要执行 shell。您可以使用 Zlib 扩展。我会尝试类似以下的东西:
<?php
$contents = zlib_decode(file_get_contents('/path/file.Z'));

感谢Vartec的回复,我似乎无法访问我的PHP版本上的Zlib扩展...除了ChrisR的建议之外,还有其他解决方法吗? - jon
1
@jon:如果您无法访问zlib,则没有。FYI,uncompress等同于gzip -d - vartec
我并没有完全理解你针对uncompress的回应,但是在你、ChrisR以及Google的帮助下,我找到了在我的服务器上可用的解决方案:shell_exec("gunzip $file"); 感谢您的帮助。祝好,J - jon
@jon:我的意思是,shell_exec("uncompres $file")shell_exec("gzip -d $file") 是一样的,正如你所指出的那样,它们与 shell_exec("gunzip $file") 是相同的。 - vartec
1
匿名编辑“为了让初学者用户能够看到他们的代码是否成功,重要的是向他们展示如何使用var_dump()而不是echo($contents)——通常向用户展示如何检查成功非常重要;因此,我希望这个更改可以保持应用。”应该是一条注释。 - Dan Is Fiddling By Firelight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接