
COMO COMPRIMIR FICHERO A TAR GZ CON PHP
En el post de comprimir a zip desde php explicaba como comprimir varios ficheros a un fichero zip usando php. Ahora quiero explicar como como comprimir fichero a tar gz con php y la verdad es que es bastante fácil. Lo primero que tenemos que hacer es asegurarnos que tenemos habilitada la extensión zlib en nuestro php usando la función phpinfo().
//Obtiene el directorio de donde se guardan los ficheros temporales configurado en php.
$tempDir = sys_get_temp_dir();
//Genera un fichero en el directorio temporal del sistema con el prefijo "tar_" y extensión "tar"
$tempTar = tempnam($tempDir, 'tar_') . '.tar';
// Nombre del archivo a comprimir
$file = 'pruebas.yaml';
// Nombre del archivo tar.gz
$outputFile = 'pruebas.tar.gz';
// Crea el archivo tar
$tar = new PharData($tempTar);
// Agrega el archivo al tar
$tar->addFile($file, basename($file));
// Comprime el archivo tar a .tar.gz
$compressedFile = $tempTar . '.gz';
$tar->compress(Phar::GZ);
// El archivo comprimido se crea con el nombre $tempTar . '.tar.gz'
if (rename($compressedFile, $outputFile)) {
echo "Archivo $outputFile creado exitosamente.\n";
// Eliminar el archivo tar temporal
unlink($tempTar);
} else {
echo "Error al mover el archivo comprimido.\n";
return false;
}