У меня есть загрузка SWF-файлов, сжатых с помощью LZMA, которые я хотел бы программно распаковать и прочитать с помощью PHP на моем сервере.
Может кто-нибудь направить меня на PHP LZMA SDK? Я гуглил по нему, но пока не нашел ничего, кроме ссылок на неработающую ссылку (7z расширение для php?)
У меня есть работающий модуль Python, который умеет читать заголовки сжатых LZMA SWF-файлов, но для этого требуется модуль с именем pyLZMA, который, по-видимому, не хочет устанавливаться на моем сервере, и заставить его работать локально было огромной болью в заднице, поэтому я Я бы предпочел решение PHP, если оно существует.
Есть библиотека под названием 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
Сжатые данные
ПРИМЕЧАНИЕ. Мой предыдущий ответ был удален модераторами из-за его низкого качества, хотя я уже получил за него положительную репутацию. Поэтому я полностью переписал это подробно. Надеюсь, это поможет еще больше.
Других решений пока нет …