PHP Untar-gz sans exec ()?

Comment décompresser-gz un fichier en php sans l'utilisation de exec('tar') ou d'autres commandes, en utilisant PHP pur?

Mon problème est le suivant; j'ai un goudron de 26 Mo.gz fichier qui doit être téléchargé sur mon serveur et extrait. J'ai essayé d'utiliser net2ftp pour l'extraire, mais il ne supporte pas de goudron.GZ décompressant après le téléchargement.

J'utilise un hébergeur web gratuit, donc ils n'autorisent aucune commande exec(), et ils n'autorisent pas l'accès à une invite. Alors, comment pourrais-je aller sur untaring cette?

PHP a-t-il une commande intégrée?

24
demandé sur PeeHaa 2012-02-23 19:55:12

2 réponses

Depuis PHP 5.3.0 vous n'avez pas besoin d'utiliser Archive_Tar.

Il y a une nouvelle classe pour travailler sur l'archive tar: la classe PharData .

Pour extraire une archive (à l'aide de PharData::extractTo() qui, comme le ZipArchive::extractTo()):

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

Et si vous avez un goudron.GZ archive, il suffit de le décompresser avant l'extrait (en utilisant 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');
40
répondu j0k 2012-09-07 09:17:32

Poire fournit le Archive_Tar class , qui prend en charge les compressions Gzip et BZ2, à condition que les extensions zlib et bz2 soient chargées respectivement.

3
répondu netcoder 2012-02-23 16:04:14