декомпрессия — декомпрессия LZMA с переполнением стека

У меня есть загрузка SWF-файлов, сжатых с помощью LZMA, которые я хотел бы программно распаковать и прочитать с помощью PHP на моем сервере.
Может кто-нибудь направить меня на PHP LZMA SDK? Я гуглил по нему, но пока не нашел ничего, кроме ссылок на неработающую ссылку (7z расширение для php?)

У меня есть работающий модуль Python, который умеет читать заголовки сжатых LZMA SWF-файлов, но для этого требуется модуль с именем pyLZMA, который, по-видимому, не хочет устанавливаться на моем сервере, и заставить его работать локально было огромной болью в заднице, поэтому я Я бы предпочел решение PHP, если оно существует.

7

Решение

Есть библиотека под названием PHP-SevenZipArchive которая является оберткой для бинарных файлов 7za и 7zr. Простой тестовый сценарий, работающий на меня в Linux:

установить пакет p7zip (yum install p7zip или похожие)

создать тестовый сжатый файл в оболочке linux

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

Сжатые данные

ПРИМЕЧАНИЕ. Мой предыдущий ответ был удален модераторами из-за его низкого качества, хотя я уже получил за него положительную репутацию. Поэтому я полностью переписал это подробно. Надеюсь, это поможет еще больше.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]