PHP Untar-gz без exec ()?

Как я могу распаковать файл в php без использования exec('tar') или любых других команд, используя чистый PHP?

Моя проблема заключается в следующем: У меня есть файл размером 26 МБ tar.gz, который необходимо загрузить на мой сервер и извлечь. Я попытался использовать net2ftp, чтобы извлечь его, но он не поддерживает tar.gz, разжатие после загрузки.

Я использую бесплатный веб-хост, поэтому они не допускают каких-либо команд exec() , и они не разрешают доступ к приглашению. Так как же я буду об этом говорить?

Есть ли встроенная команда PHP?

    Начиная с PHP 5.3.0 вам не нужно использовать Archive_Tar .

    Для работы с tar-архивом существует новый класс: класс PharData .

    Чтобы извлечь архив (используя PharData::extractTo() которые работают как ZipArchive::extractTo() ):

     try { $phar = new PharData('myphar.tar'); $phar->extractTo('/full/path'); // extract all files } catch (Exception $e) { // handle errors } 

    И если у вас есть архив tar.gz, просто распакуйте его перед извлечением (используя PharData::decompress() ):

     // decompress from gz $p = new PharData('/path/to/my.tar.gz'); $p->decompress(); // creates /path/to/my.tar // unarchive from the tar $phar = new PharData('/path/to/my.tar'); $phar->extractTo('/full/path'); 

    PEAR предоставляет класс Archive_Tar , который поддерживает сжатие Gzip и BZ2, при условии, что вы загружаете расширения zlib и bz2 соответственно.