Forum Doku Wiki Blog

Forumsarchiv 2002, November
Zippen unter verschärften Bedingungen (Vers. 4.2.3)

archivierte Beiträge lesen

  1. (PHP) Zippen unter verschärften Bedingungen (Vers. 4.2.3) von Maik W. aus E., 18. 11. 2002, 14:10

Zippen unter verschärften Bedingungen (Vers. 4.2.3)

Der folgende Beitrag wurde am 18. 11. 2002, 14:10 Uhr von Maik W. aus E. veröffentlicht.

Tach zusammen,

ich möchte gerne per PHP-Script auf dem Webserver vorhandene Dateien "archivieren", sprich, ganze Verzeichnisse in eine Komprimierte Datei zusammenziehen, diese in einem Archivbereich anzeigen und entsprechend dem Inhalt der Zip-Datei, einzelne Dateien wieder anzeigbar bzw. herunterladbar machen. So weit, so gut. Allerdings muß ich kämpfen:

1. *.tar.gz- Dateien erstellen
Mein Provider hat die script-Zugriffe auf die Shell gesperrt
(php.ini:disable_functions: system, passthru, shell_exec, popen, escapeshellcmd, escapeshellarg, proc_open)

Einzig exec ist nicht gesperrt, allerdings läuft ein
//Verzeichnisse zippen
$aktion ="tar czf archiv/$projekt_ordnername.tar.gz data/$projekt_ordnername";
exec($aktion);
in's Unendliche, aber vielleicht bin ich auch zu doof dafür...

Ich bin mir sicher, letzte Woche ging es noch, eine meiner experimentellen *.tar.gz liegt auch noch auf dem Server rum...


zlib ist da, meine Versuche damit fruchteten nicht wirklich, im Archiv habe ich gefunden, daß Christian in http://forum.de.selfhtml.org/archiv/2002/11/29420/#m159154schrieb:

>Gzip ist dem Zip-Format ueberigens sehr aehnlich,
>man kann halt einfach nur eine einzige Datei da 'rein packen.

dann ist das ja wohl auch nichts für mich...


2. *.tar.gz-Dateien temporär entpacken und anzeigen
die ZZIPlib ist nicht installiert, die zlib kann nur mit einer Datei umgehen, muß ich mir das Ganze von der Backe kratzen, 'nen anderen Provider suchen oder hat jemand noch eine Idee, wie man das realisieren kann?

Vielen Dank

Gruß aus Essen

Maik

Zippen unter verschärften Bedingungen (Vers. 4.2.3)

Der folgende Beitrag wurde am 19. 11. 2002, 19:27 Uhr von Michael Schröpl veröffentlicht.

Hi Maik,

> $aktion ="tar czf archiv/$projekt_ordnername.tar.gz data/$projekt_ordnername";
> exec($aktion);

ich überlege mal ins Unreine:
Wenn Du statt "tar" eine Shell startest (also ein "exec" auf
"/bin/sh <pfadname>" machst), könnte mehr drin sein,
beispielsweise _dann_ ggf. auch eine Pipe zwischen "tar" und
"gzip" oder was auch immer, innerhalb des Shell-Skripts ...
Du mußt ja nicht in PHP bleiben. ;-)

> in's Unendliche, aber vielleicht bin ich auch zu doof dafür...

Hm. Sieht nach relativen Pfadnamen aus.
Das ist im CGI/PHP/...-Kontext meistens nicht ganz ungefährlich.
Hast Du mal absolute Pfadnamen versucht?
(DOCUMENT_ROOT solltest Du via Environment verwenden können.)

> >Gzip ist dem Zip-Format ueberigens sehr aehnlich,
> >man kann halt einfach nur eine einzige Datei da 'rein packen.
> dann ist das ja wohl auch nichts für mich...

Es löst Dein Problem nicht alleine.
Wenn Du per "exec" etwas starten kannst, das zuerst "tar" und auf
dessen Ausgabe dann "gzip" anwendet, kannst Du "gzip" nutzen.

> 2. *.tar.gz-Dateien temporär entpacken und anzeigen

Hm. Wie soll das funktionieren?

Bei "anzeigen" stelle ich mir vor, den Inhalt _einer_ Datei anzuzeigen.
Deine *.tar-Datei enthält aber nicht _eine_ Datei, sondern _viele_.
(Meinst Du vielleicht "das Inhaltsverzeichnis anzeigen"? Ggf. mit
Links auf Aufrufe zur Anzeige einzelner Dateien via anderem PHP-Skript?)

Viele Grüße
      Michael

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4