Archives | Mentions légales | Vie privée
19e Mars 2010
Nerd 2.0

Décompressez avec PHP

Qui ne connaît pas, des tonnes d'archives formats zip, gz différents, BZ, lzma, etc sont sur le bureau sans aucun problème. Lors de la création d'une application Web en PHP, le plus compliqué, donc je l'ai fait exec () et 7-zip résolu.

L'appendice un paquet avec PHP - Fonction d'extraire et de 7zip - Binary pour les 32 / 64 - bits systèmes Linux et Windows.

Pour une utilisation sur les systèmes Linux, le 64/7z 32/7z et le rendre exécutable et intégré dans le script functions.php. La fonction extractAll avec l'archive et éventuellement les paramètres 7zip appelé. rmdirr () supprime un répertoire de façon récursive (même si il ya des fichiers dans des sous répertoires), très pratique pour les archives juste déballé.

Téléchargement: php-7z

/* Nerd 2.0
 * March 2010
 * www.nerd20.de
 */
function extractAll($file, $cmd = '') {
	// 64 / 32 Bit - Unix, Windows
	if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
		$cmd = '32\7z x '.$file.' -y '.$cmd;
	}
	else {
		if(intval(-6981276091) == -6981276091) {
			$cmd = '64/7z x '.$file.' -y '.$cmd;
		}
		else {
			$cmd = '32/7z x '.$file.' -y '.$cmd;
		}
	}
	// Ausführen
	exec($cmd, $output);
	return $output;
}
/**
 * Delete a file, or a folder and its contents (recursive algorithm)
 *
 * @author      Aidan Lister <aidan@php.net>
 * @version     1.0.3
 * @link        http://aidanlister.com/repos/v/function.rmdirr.php
 * @param       string   $dirname    Directory to delete
 * @return      bool     Returns TRUE on success, FALSE on failure
 */
function rmdirr($dirname)
{
    // Sanity check
    if (!file_exists($dirname)) {
        return false;
    }
    // Simple delete for a file
    if (is_file($dirname) || is_link($dirname)) {
        return unlink($dirname);
    }
    // Loop through the folder
    $dir = dir($dirname);
    while (false !== $entry = $dir->read()) {
        // Skip pointers
        if ($entry == '.' || $entry == '..') {
            continue;
        }
        // Recurse
        rmdirr($dirname . DIRECTORY_SEPARATOR . $entry);
    }
    // Clean up
    $dir->close();
    return rmdir($dirname);
}

Vielen Dank an aidanlister.com für das Löschen von Verzeichnissen und dem smarty Blog für 32- / 64-Bit Abfrage.

Ähnliche Beiträge:
Lesezeichensidebar mit Icons
Text gekürzt, aber HTML offen?
Archiv für WordPress! Ohne Links?
Vista – Bugs per Update!
Festplatte Partitionieren, Verschlüsseln, Formatieren

Kommentieren


Ähnliche Beiträge:
Lesezeichensidebar mit Icons
Text gekürzt, aber HTML offen?
Archiv für WordPress! Ohne Links?
Vista – Bugs per Update!
Festplatte Partitionieren, Verschlüsseln, Formatieren

Kommentieren