Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:php:programme:entpacken

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
programmieren:php:programme:entpacken [03/10/2020 12:12] connyprogrammieren:php:programme:entpacken [01/04/2021 14:16] (aktuell) conny
Zeile 4: Zeile 4:
 \\ \\
 \\ \\
-**Problem:** Man hat große Programmpakete und möchte diese nicht local entpacken und dann per FTP hochladen, weil das viel zu lange dauert.\\+**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.\\ **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.\\
Zeile 12: Zeile 12:
 Dann das Script starten.\\ 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 }}
  
 <code php| entpack.php> <code php| entpack.php>
 <?PHP <?PHP
-$dateiName 'backup.tar.gz'; +// Entpack Kommandos: https://www.thomas-krenn.com/de/wiki/Archive_unter_Linux_(tar,_gz,_bz2,_zip)#zip 
-$shellBefehl = "tar -xzvf $dateiName"; +echo "<h1>Datei entpacken</h1>"; 
-$shellBefehl = escapeshellcmd($shellBefehl); + 
-exec($shellBefehl,$nu); +if (!is_callable('exec')) { 
-<pre> + die( "EXEC muss in der PHP.INI zugelassen sein." ); 
-print_r($nu); +
-</pre> + 
-?> +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); 
 +} 
 +?>
 </code> </code>
 +
 +**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 (330 views) · Zuletzt geändert: 03/10/2020 12:12 von conny

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki