==== Dateien entpacken ==== \\ Diese Script entpackt eine Datei mit Unterverzeichnissen.\\ \\ \\ **Problem:** man hat große Programmpakete und möchte diese nicht local entpacken und dann per FTP hochladen, weil das viel zu lange dauert.\\ \\ **Alternative:** man kopiert die gepackte Datei auf den Webspace und zusätzlich dieses Script. Dieses entpackt dann das Script auf dem Webspace was wesentlich schneller geht.\\ \\ **Anwendung:**\\ Dazu einfach die Datei in das gewünschte Verzeichnis kopieren und die erste Zeile ändern.\\ Dann das Script starten.\\ \\ **ACHTUNG:** Das Script benötigt die Berechtigung von zum Ausführen der EXEC Befehle. Dazu muss diese in der php.ini entsprechend freigegeben sein. {{ programmieren:php:programme:pl_exec_1.png?500 }} Datei entpacken"; if (!is_callable('exec')) { die( "EXEC muss in der PHP.INI zugelassen sein." ); } if (!isset($_GET["datei"])) { echo "Bitte Datei zum enpacken anklicken:
"; // Der Punkt steht für das Verzeichnis, in der auch dieses // PHP-Programm gespeichert ist $read_verz = "."; $verzeichnis = openDir($read_verz); // Verzeichnis lesen while ($file = readDir($verzeichnis)) { // Datei Extension auslesen $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if ($file != "." && $file != ".." ) { if ( $ext == "zip" || $ext == "tar" || $ext == "gz" || $ext == "gzip" || $ext == "bz2" || $ext == "bzip2") { // Link erstellen echo "$file
\n"; } } } // Verzeichnis schließen closeDir($verzeichnis); } else { $dateiname = $_GET["datei"]; echo "".$dateiname." wird entpackt:
"; $ext = strtolower(pathinfo($dateiname, PATHINFO_EXTENSION)); if ($ext === "zip") { // echo "ZIP Datei
"; $shellBefehl = "unzip $dateiName"; } elseif ($ext === "tar") { // echo "tar Datei
"; $shellBefehl = "tar cfv $dateiName"; } elseif ($ext === "gz" || $ext === "gzip" ) { // echo "gz Datei
"; $shellBefehl = "tar xfvz $dateiName"; } elseif ($ext === "bz2" || $ext === "bzip2" ) { // echo "gzip Datei
"; $shellBefehl = "tar xfvj $dateiName"; } $shellBefehl = escapeshellcmd($shellBefehl); exec($shellBefehl,$nu); echo "
";
	print_r($nu);
	echo "
"; echo "Fertig"; } function isEnabled($func) { return is_callable($func) && false === stripos(ini_get('disable_functions'), $func); } ?>
**Ausgabe:** Array ( [0] => dokuwiki/.htaccess.dist [1] => dokuwiki/COPYING [2] => dokuwiki/README [3] => dokuwiki/VERSION [4] => dokuwiki/bin/.htaccess [5] => dokuwiki/bin/dwpage.php [6] => dokuwiki/bin/gittool.php [7] => dokuwiki/bin/indexer.php [8] => dokuwiki/bin/plugin.php [9] => dokuwiki/bin/render.php [10] => dokuwiki/bin/striplangs.php [11] => dokuwiki/bin/wantedpages.php [12] => dokuwiki/conf/.htaccess [13] => dokuwiki/conf/acl.auth.php.dist [14] => dokuwiki/conf/acronyms.conf [15] => dokuwiki/conf/dokuwiki.php [16] => dokuwiki/conf/entities.conf [17] => dokuwiki/conf/interwiki.conf [18] => dokuwiki/conf/license.php [19] => dokuwiki/conf/local.php.dist