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?
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');
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.