programmieren:php:programme:entpacken
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.
- entpack.php
<?PHP // Entpack Kommandos: https://www.thomas-krenn.com/de/wiki/Archive_unter_Linux_(tar,_gz,_bz2,_zip)#zip echo "<h1>Datei entpacken</h1>"; if (!is_callable('exec')) { die( "EXEC muss in der PHP.INI zugelassen sein." ); } if (!isset($_GET["datei"])) { echo "Bitte Datei zum enpacken anklicken:<br>"; // 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 "<a href='". basename(__FILE__) ."?datei=$file'>$file</a><br>\n"; } } } // Verzeichnis schließen closeDir($verzeichnis); } else { $dateiname = $_GET["datei"]; echo "<b>".$dateiname."</b> wird entpackt:<br>"; $ext = strtolower(pathinfo($dateiname, PATHINFO_EXTENSION)); if ($ext === "zip") { // echo "ZIP Datei <br>"; $shellBefehl = "unzip $dateiName"; } elseif ($ext === "tar") { // echo "tar Datei <br>"; $shellBefehl = "tar cfv $dateiName"; } elseif ($ext === "gz" || $ext === "gzip" ) { // echo "gz Datei <br>"; $shellBefehl = "tar xfvz $dateiName"; } elseif ($ext === "bz2" || $ext === "bzip2" ) { // echo "gzip Datei <br>"; $shellBefehl = "tar xfvj $dateiName"; } $shellBefehl = escapeshellcmd($shellBefehl); exec($shellBefehl,$nu); echo "<pre>"; print_r($nu); echo "</pre>"; 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
programmieren/php/programme/entpacken.txt · Zuletzt geändert: 01/04/2021 13:16 (Externe Bearbeitung)