PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   wget mit Kontrolle ob alles komplett geladen wurde (http://www.selfphp.de/forum/showthread.php?t=24983)

sysop 07.06.2013 12:23:34

wget mit Kontrolle ob alles komplett geladen wurde
 
Ich möchte regelmässig mit einem PHP-Script eine Zip-Datei per wget herunterladen, die Datei kann unterschiedliche Grössen haben. Die Datei wird dann entpackt und weiter verarbeitet.

Nun möchte ich sicher sein, dass die Datei komplett geladen ist, bevor ich den nächsten Schritt mache, da steckt mein Problem!
wget generiert ja keine wirkliche Ausgabe und mit passthru($cmd) bekomme ich keine Anzeige.

Eine spontane andere Idee wäre:
Zuerst die md5 Prüfsumme zu laden und mit dem Download zu vergleichen, erst bei Gleichheit nächster Schritt. Das gefällt mir aber nicht, da ich ja praktisch in einer Schleife die Prüfsumme errechnen müsste.

Kennt jemand eine vernünftige Möglichkeit die Vollständigkeit eines Downloads zu prüfen um im Script weiter machen zu können, also die weitere Verarbeitung zu starten?

Ckaos 08.06.2013 10:07:37

AW: wget mit Kontrolle ob alles komplett geladen wurde
 
Hi,

Zitat:

PHP-Script eine Zip-Datei per wget herunterladen
Hmm, also entweder lade ich die Datei mit PHP-Bordmitteln z.B. file_get_contents
oder ich machs gleich per Batch!

Ich halte nix von exec !

MfG

CKaos

sysop 10.06.2013 09:03:16

AW: wget mit Kontrolle ob alles komplett geladen wurde
 
Hallo

Das ist ja nicht eine Frage, ob es einem gefällt oder nicht.
file_get_contents() unterliegt den Beschränkungen der php.ini (Memory) und ob das geeignet ist, eine Binärdatei zu laden, darüber kann man diskutieren. Mal abgesehen davon dauert es länger....

Batch/Shell würde bedeuten, ich muss einen SSH-Zugriff auf den Server haben, das kommt aber nicht in Frage. Starte ich ein Shell-Script aus PHP heraus, habe ich letztendlich das selbe Problem wie jetzt.

Was bleibt ist exec.

Tatsache ist, dass der Download funktioniert, aber kontrolliert werden soll, ob er bereits erfolgreich beendet ist!

Xor 12.09.2013 13:36:35

AW: wget mit Kontrolle ob alles komplett geladen wurde
 
Hi

Zitat:

wget generiert ja keine wirkliche Ausgabe und mit passthru($cmd) bekomme ich keine Anzeige.
Warum generiert wget keine Ausgabe? Bzw. warum ist dir der Rückgabe-Wert nicht genug?

Rückgabewerte von wget:
http://www.gnu.org/software/wget/man...it-Status.html

Du könntest also z.b.
PHP-Code:

passthru("wget ....",$returnValues);
if(
$returnValues[0] == 0)
{
  .....
vlt trotzdem md5?....


Wenn du wirklich mit der ausgabe von wget arbeiten willst musst du exec verwenden und versuchen wget dazu zu bringen, das rauszuschreiben, was du brauchst.
z.B.: wget -q -S, und dann den Server-Code parsen

Lg

Ckaos 12.09.2013 14:10:30

AW: wget mit Kontrolle ob alles komplett geladen wurde
 
Hi,

Zitat:

Zitat von sysop (Beitrag 145143)
Das ist ja nicht eine Frage, ob es einem gefällt oder nicht.

Richtig, ich benutze es einfach nicht! Ich benutze ja auch nicht nur PHP oder versuche mit PHP alles anzusprechen / zu kontrollieren. Mir fallen auch nur 1-2 Situationen ein wo ich mir im entferntesten vorstellen könnte es benutzen zu wollen.

Zitat:

file_get_contents() unterliegt den Beschränkungen der php.ini
Ich lade damit ja auch keine 100mb Dateien :/

Zitat:

Batch/Shell würde bedeuten, ich muss einen SSH-Zugriff auf den Server haben
Wo ist das Problem?
Zitat:

Starte ich ein Shell-Script aus PHP heraus, habe ich letztendlich das selbe Problem wie jetzt.
Nein per Cron und der holt sich die Infos aus der DB welches das PHP Script kontrolliert.

Ich habe anscheinend eine andere Vorstellung was man mit PHP umsetzt ;)

Viel Erfolg noch.

MfG

CKaos

sysop 12.09.2013 17:41:19

AW: wget mit Kontrolle ob alles komplett geladen wurde
 
Zitat:

Zitat von Ckaos (Beitrag 145460)

Zitat:

Batch/Shell würde bedeuten, ich muss einen SSH-Zugriff auf den Server haben
Wo ist das Problem?

Dass Problem liegt darin, dass ich keinen Zugriff auf meinen Server an Fremde hergebe ;-)

Das Script wird von (mir vollkommen unbekannten) Leuten ausgeführt, denen ich ein Online-Update für ein Open Source PHP-Projekt zur Verfügung stelle.

Das Problem ist aber mittlerweile keines mehr, da ich mir nun doch eine Kontrollroutine geschrieben habe, die die MD5 Summe vergleicht und so den kompletten Download vor der Weiterverarbeitung sicher stellt.
Natürlich prüfe ich vorher, ob wget überhaupt installiert ist...

Aber danke nochmal.


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:11:45 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.