使用 PHP 解压缩 LZMA

Decompressing LZMA with PHP

我有大量使用 LZMA 压缩的 SWF 文件,我想在我的服务器上以编程方式解压缩并使用 PHP 读取这些文件。 有人可以指导我使用 PHP LZMA SDK 吗?我用谷歌搜索了它,但到目前为止除了提到损坏的 link (7z extension for php?)

什么也没找到

我有一个工作的 python 模块,它设法读取 headers LZMA 压缩的 SWF,但它需要一个名为 pyLZMA 的模块,它似乎不想安装在我的服务器上,并且越来越它在本地工作是一个巨大的痛苦,所以我更喜欢 PHP 解决方案(如果存在的话)。

有一个名为 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 将创建文件 out/compressed

cat out/compressed

压缩数据

注意:我之前的回答由于质量低劣而被版主删除,尽管我已经因此获得了良好的声誉。因此,我以详细的方式完全重写了它。希望这对您有所帮助。