2015-09-25 101 views
7

我有一个用LZMA压缩的SWF文件,我希望用我的服务器以编程方式解压缩并用PHP读取。 有人可以指示我到PHP LZMA SDK吗?我GOOGLE了它,但迄今没有发现什么,但是对于一个断开的链接(7z extension for php?用PHP解压缩LZMA

我有一个管理阅读的LZMA压缩头主权财富基金工作的Python模块,但它需要一个叫做pyLZMA模块,没有按似乎不想在我的服务器上安装,并且在本地工作是一个巨大的麻烦,所以我更喜欢PHP解决方案(如果存在的话)。

+1

如果没有PHP的LZMA类/库/扩展,您可以随时调用命令行'7z'应用程序。 –

+0

如何通过命令行解码〜8MB的字符串? – hedgehog90

+0

您可以将它保存为临时文件,或者'7z'可以接受来自STDIN的数据。 –

回答

2

有一个名为PHP-SevenZipArchive的库,它是7za和7zr二进制文件的包装。简单的测试场景中的Linux工作对我来说:

安装的p7zip软件包(yum install p7zip或类似)

建立在Linux shell中测试压缩文件

echo "Compressed data" | lzma -z > compressed.string 

下载并解压PHP-SevenZipArchive

wget https://github.com/cmanley/PHP-SevenZipArchive/archive/master.zip 
unzip master.zip 

创建解压缩输出目录

mkdir out 

创建测试php文件

<?php 
require "./PHP-SevenZipArchive-master/SevenZipArchive.php"; 
$archive = new SevenZipArchive('compressed.string', array('binary'=>'/usr/bin/7za')); 
$archive->extractTo('out'); 
?> 

php -f ./index.php将创建文件输出/压缩

cat out/compressed 

压缩数据

注:我以前的答案被版主,其质量较差删除,尽管我已经获得了良好的声誉。所以我完全重写了它的详细方式。希望这可以帮助更多。