用PHP解压LZMA

用PHP解压LZMA,php,compression,lzma,Php,Compression,Lzma,我有一大堆用LZMA压缩的SWF文件,我想在我的服务器上用PHP进行编程解压缩和读取。 有人能告诉我一个PHP LZMA SDK吗?我在谷歌上搜索过它,但到目前为止,除了一个断开的链接() 我有一个可以工作的python模块,它可以读取LZMA压缩SWF的头文件,但它需要一个名为pyLZMA的模块,它似乎不想安装在我的服务器上,让它在本地工作是一件非常痛苦的事情,所以如果有PHP解决方案的话,我更喜欢它。有一个名为的库,它是7za和7zr二进制文件的包装器。在linux中为我工作的简单测试场景:

我有一大堆用LZMA压缩的SWF文件,我想在我的服务器上用PHP进行编程解压缩和读取。 有人能告诉我一个PHP LZMA SDK吗?我在谷歌上搜索过它,但到目前为止,除了一个断开的链接()

我有一个可以工作的python模块,它可以读取LZMA压缩SWF的头文件,但它需要一个名为pyLZMA的模块,它似乎不想安装在我的服务器上,让它在本地工作是一件非常痛苦的事情,所以如果有PHP解决方案的话,我更喜欢它。

有一个名为的库,它是7za和7zr二进制文件的包装器。在linux中为我工作的简单测试场景:

安装p7zip软件包(
yum安装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的LZMA类/库/扩展,您可以随时调用命令行
7z
应用程序。我如何通过命令行准确解码~8MB字符串?您可以将其保存为临时文件,或者
7z
可以接受来自STDIN的数据。
cat out/compressed