php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-03-2009, 00:56
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard problem mit entpacken von *tgz

Hallo Leute,

ich bin da vor eine Aufgabe gestellt worden, die mir äußerst kopfzerbrechen bereitet....

ich hab die suchfunktion eingesetzt aber doch tatsächlich nur ein relavantes ergebnis gefunden, deren antworten mir leider auch keine echte erleuchtung bringen....

und zwar lade ich per script über FTP files im Format *tgz runter,
diese müsste ich danach gleich automatisch entpacken.
in diesem TGZ file befindet sich ein ordner in dem sich viele CSV dateien befinden, die ich anschließen zur auswertung verarbeiten muss...

das ganze passiert auf einem 1&1 webspace, habe daher leider nicht die möglichkeit für einen Systemcall

kann mir da jemand mit tips, tuts, klassen oder links auf die sprünge helfen ?? wäre echt spitze

für hilfe bin ich echt dankbar !
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #2 (permalink)  
Alt 23-03-2009, 02:37
ModestLife
 Registrierter Benutzer
Links : Onlinestatus : ModestLife ist offline
Registriert seit: Sep 2007
Beiträge: 105
ModestLife ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Falls dein Hosting >= PHP 5.2 bietet, guck dir mal ZipArchive an.

Ansonsten gibt's da noch die zip_* Funktionen. Schon probiert?

Geändert von ModestLife (23-03-2009 um 02:39 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 23-03-2009, 08:56
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

google("php tar gz")
Mit Zitat antworten
  #4 (permalink)  
Alt 23-03-2009, 14:54
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard Re: problem mit entpacken von *tgz

Zitat:
Original geschrieben von ways
ich bin da vor eine Aufgabe gestellt worden, die mir äußerst kopfzerbrechen bereitet....
Ich hoffe, du musst damit nicht deine Brötchen verdienen.

Zitat:
und zwar lade ich per script über FTP files im Format *tgz runter,
diese müsste ich danach gleich automatisch entpacken.
Es schadet nicht, erstmal einige Grundlagen zu kennen -- dann fällt die Suche (oder die Wahl der passenden Suchbegriffe) leichter.

Für solche Archive gibts bspw. das PEAR-Paket File_Archive.

Eine API-Online-Dokumentation gibts auch.

Auf Stackoverflow.com findest du ein Beispielskript, was dir zeigt, wie du damit TAR-Archive auslesen kannst.

Und nur der Vollständigkeit halber: GZIP-komprimierte Dateien handhabt man mit der ZLib-Erweiterung. Die ist aber nur auf Windoze-Systemen serienmäßig dabei. Ob sie auf deinem System dabei ist, findest du wie immer über extension_loaded() oder notfalls auch per phpinfo() heraus.
Mit Zitat antworten
  #5 (permalink)  
Alt 24-03-2009, 00:17
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

doch, muss mir meine brötchen damit verdienen

aber hab grad erst ausgelernt und als "junior" fehlt mir natürlich noch der ganze erfahrungsschatz !


ich danke jedenfalls für die hinweise... mit grundlagen pauken hab ich kein problem... meist eher damit rauszufinden, welche für was die richtigen grundlagen sind
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #6 (permalink)  
Alt 24-03-2009, 22:59
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so, nun hab ich mir ja tagelang echt mühe gegeben

aber irgendwie bekomm ich keine plattformunabhängige scriptlösung hin, mit der ich *tgz files einfach auf nem webserver ohne shell zugriff unter verwendung von php5 standardlibs zum laufen bekomme..

ich hab nun sogar schon ein paar mal gelesen, dass dies gar nicht geht...

stimmt das so ?
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #7 (permalink)  
Alt 24-03-2009, 23:29
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von ways
ich hab nun sogar schon ein paar mal gelesen, dass dies gar nicht geht...

stimmt das so ?
Das ist gut möglich! Ich hatte mal eine ähnliche Problemstellung und hab die Suche irgendwann aufgegeben. Kann natürlich trotzdem sein, daß jemand mit einer Menge Zeit schon mal eine native PHP-Implementation von unzip geschrieben hat aber ich wüßte nicht wo.
Mit Zitat antworten
  #8 (permalink)  
Alt 25-03-2009, 01:34
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kennst denn niemand einen weg, *tgz files auf nem webserver scriptseitig zu entpacken?

leider komm ich um das problem nich drum herum, wäre nett, wenn da jemand noch nen hinweis hat
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #9 (permalink)  
Alt 25-03-2009, 10:51
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard Re: problem mit entpacken von *tgz

Zitat:
Original geschrieben von ways
das ganze passiert auf einem 1&1 webspace, habe daher leider nicht die möglichkeit für einen Systemcall
Du hast die Möglichkeit zu wechseln.
Mit Zitat antworten
  #10 (permalink)  
Alt 25-03-2009, 12:44
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Mahlzeit!

Den Hoster zu wechseln, wenn der nicht in der Lage ist, zlib-Unterstützung anzubieten, ist natürlich auch eine Idee. Eine andere wäre, den Hoster zu bitten, die zlib-Extension einzubinden -- das sollte nicht so schwer sein[1]. Wenn es sich allerdings nur um ein 08-15-Massenhosting-Paket handelt ...

Der Witz ist, dass die benötigte DEFLATE/INFLATE-Komprimierung schon mehrfach in jedem PHP-Webhostingpaket vorhanden ist:
Der Webserver hat sicher das gzip-Modul eingebaut.
Die GDLib in PHP greift auf den gleichen Algorithmus zu, um PNG-Dateien und GD-Daeien zu packen und zu entpacken.
Die CURL-Erweiterung kann auch damit umgehen.
Leider kann man diese nicht einfach so anzapfen.

Einen Notbehelf könnte ich mir noch vorstellen, und der wäre MySQL. Dessen neuere Versionen bieten die Funktionen COMPRESS() und UNCOMPRESS(). Mit letzterer müsste man zlib-komprimierte Binärstrings entpacken können. Darum herum eine Funktion zu stricken, die vor dem Entpacken eventuell nötige Header ergänzt und dann die entpackten Daten zurückliefert, sollte keine so große Herausforderung darstellen.

Allerdings muss man auch hier vorher prüfen, ob der MySQL-Server(?) mit zlib-Unterstützung kompiliert wurde. Entsprechende Hinweise finden sich im Erklärungstext zu den Funktionen.

Und natürlich sollte man auch nicht vergessen, dass dann Daten erst vom Webserver zum Datenbankserver und von dort wieder zurückgeschickt werden müssen. Nicht besonders effektiv das Ganze ...

Deswegen auch meine Frage mit dem Brötchen-Verdienen: Als Knobelaufgabe oder Gehirnjogging in der Freizeit ist sowas sicher geeignet, im Job würde ich meine Zeit aber nur dann damit vertrödeln, wenn der Brötchengeber dafür auch seine Zustimmung gibt.


Ähnlich fährst du übrigens mit der Native-PHP-Lösung. Es sollte prinzipiell machbar sein[2], wenigstens das Entpacken nur in PHP nachzubauen. Aber die Geschwindigkeit dürfte nicht berauschend sein. Und dann müsste man immer noch jemanden finden, der den C-Quellcode nach PHP übersetzt.

Wer sich "for educational purposes" trotzdem dranwagen will:
http://www.zlib.net/ hat den C-Quellcode der zlib. (puff.c dürfte hierbei am interessantesten sein)
Auf http://www.jcraft.com/jzlib/ gibts eine native Java-Implementierung.

Es gibt auch (native|pure) Implementierungen des Entpack-Algorithmus' in Python und LUA:
http://www.paul.sladen.org/projects/pyflate/
http://lua-users.org/wiki/ModuleCompressDeflateLua
... und (na klar) in Perl:
http://search.cpan.org/~nwclark/Comp...b-Perl/Perl.pm

--
[1] Ich hab spaßeshalber drei mir bekannte Free-Webspace-Hoster per phpinfo() geprüft. Fazit: ebytenet, kilu und lima-city haben die zlib eingebunden.

[2] Einen Entpacker für Lauflängen-komprimierte Pixel-Daten hab ich schon mal in PHP geschrieben. Mit Drumherum (Planar-To-Chunky-Konvertierung und Schreiben in eine GD-Image-Ressource) kam der auf ca. 5 Bilder a 1024x768 Pixel, die er pro Sekunde entpackte. Aber INFLATE ist sicher nicht ganz so einfach zu bauen.
Mit Zitat antworten
  #11 (permalink)  
Alt 25-03-2009, 14:49
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich hab nun bei 1und1 geschaut:
phpinfo

demnach is die zlib mit dabei....

jetzt muss ich nur noch rausfinden, wie ich die einsetze..
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #12 (permalink)  
Alt 25-03-2009, 22:40
ways
 Member
Links : Onlinestatus : ways ist offline
Registriert seit: Nov 2003
Ort: Berlin-West :-)
Beiträge: 386
ways ist zur Zeit noch ein unbeschriebenes Blatt
Standard

okay.. problem dirty gelöst, aber gelöst....
da ich in den tgz files nur auf CSV dateien zugreifen will und auch vorher weiß, wie die heissen hab ich es mit hilfer der tar.class.php ausm netz geschafft, die daten in der CSV auszulesen und aufm server als CSV abzulegen !

blöd ist nur, dass das script bei 1&1 nich funzt...
obwohl ZLIB drauf ist, soweit ich das richtig sehe...

local und auf meinem flyhost server läufts prima
__________________
Coder never die, they just GOSUB without RETURN

Mein System
Mit Zitat antworten
  #13 (permalink)  
Alt 26-03-2009, 00:16
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Nur interessehalber: Um welche tar.class.php handelt es sich? Google scheint da mehrere Versionen von verschiedenen Sites zu kennen (phpclasses.org, drupal, ...).

Die zlib-Funktionen (die durch die zlib-Erweiterung bereitgestellt werden) fangen fast alle mit "gz..." an. Welche davon werden in deinem Script verwendet? Oft gibts aber gzdecode() nicht. Dessen Handbuchseite bietet eine Reihe von Alternativen, die meistens klaglos funktionieren.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:59 Uhr.