php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.10.2009, 15:59  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 17
PHP-Kenntnisse:
Anfänger
stoffel befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Per FTP hochgeladene Datei sofort verarbeiten?

Hallo zusammen,

da ich nur Hobby-Programmierer bin, wüsste ich gerne, wie man in der Praxis dieses logische Problem lösen würde.

Das Scenario sieht so aus:
Eine XML Datei wird per FTP auf den Server geladen und soll dort von PHP weiterverarbeitet werden.
Zur Zeit wird einfach bei jedem Seitenaufruf geprüft, ob eine XML-Datei vorhanden ist und ggf. verarbeitet.
Das funktioniert soweit auch sehr gut.

Nun das Problem:
Die XML-Dateien bauen aufeinander auf.
D.h. es muss jede Datei verarbeitet werden.
Der FTP-Client überschreibt aber jedesmal die Datei.
Die Vergabe weiterer Dateinamen ist leider nicht möglich.
Wenn also nun in kurzer Zeit zweimal übertragen wird und in der Zwischenzeit niemand die Hompage besucht hat, geht eine Änderung verloren.

Meine bisherige Recherche hat ergeben, dass eine zeitnahe Verarbeitung wohl mit nur Cronjobs möglich wäre.
Im Hostingpaket ist sogar einer erlaubt.
Aber ist es praktikabel, für so ein kleines Projekt alle paar Sekunden einen Cronjob ausführen zu lassen, wobei Dateien im Schnitt nur alle ein bis zwei Wochen übertragen werden?
Oder macht man das in der Praxis so?

Wie würdet ihr es lösen?
stoffel ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.10.2009, 16:04  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Alle paar Sekunden ist bei cronjobs meist nicht, wenn dann alle paar minuten, jenachdem was dein Hoster dir da anbietet.

Wenn das alle 2 Wochen passiert, wo ist das problem danach einfach kurz eine Url aufzurufen ? Klingt für mich jetzt nicht nach so viel Aufwand ?

Ansonsten bastel dir doch ein fertiges script, unter windows z.b. eine bat-datei die die xml-datei hochlädt und danach via wget automatisch die url des scrpts aufruft das die xml-datei verarbeiten soll.

Denk halt vor allem dran dass du was einbaust damit die datei nur einmal verarbeitet wird, weil sonst passiert es vielleicht dass die datei mehrfach abgearbeiet wird und doppelte inhalte entstehen oder defekte daten.
robo47 ist offline  
Alt 21.10.2009, 16:21  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 17
PHP-Kenntnisse:
Anfänger
stoffel befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
... wo ist das problem danach einfach kurz eine Url aufzurufen ?
Ich habe die Seite für einen Bekannten als Freundschaftsdienst erstellt, der sich erfahrungsgemäß nicht an solche Vorgaben hält.
Wenn es meine Seite wäre, ja, dann würde ich es auch einfach so machen.

Zitat:
... Ansonsten bastel dir doch ein fertiges script
Es ist so, daß die XML Datei von seiner Immobilien-Software direkt hochgeladen wird. Einen weiteren Arbeitsschritt wollte ich gerne vermeiden, da ich mich nicht drauf verlassen kann, dass er ihn auch wirklich ausführt.
Ich hatte z.B. anfangs aus Zeitgründen nur eine rudimentäre Datenvalidierung eingebaut und ihm eingebläut, dass er selbst dafür verantwortlich wäre bei der Eingabe drauf zu achten.
Oh je, das war was ....
stoffel ist offline  
Alt 21.10.2009, 16:37  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Bei Webhosting bleibt dir gar nix übrig als regelmässig zu prüfen ob eine neue Datei da ist. Das einfachste ist eigentlich ein Cronjob der aller x Minuten prüft ob was zu tun ist.

Mit einem eigenen Server hat man natürlich mehr Möglichkeiten. Z.B. die einfachste ist pureFTP, da kann mittels config Eintrag für jeden Upload ein Shellscript aufgerufen werden.
erc ist offline  
Alt 21.10.2009, 17:15  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 17
PHP-Kenntnisse:
Anfänger
stoffel befindet sich auf einem aufstrebenden Ast
Standard

Ja, ein eigener Server wäre fein ...

Wenn ich nun per Cronjob alle x Minuten prüfe, er es aber schafft schneller als x zweimal zu übertragen, habe ich trotzem Daten verloren.

Bsp:
Er überträgt 5 Objekte.
Stellt unmittelbar nach der Übertragung einen Rechtschreibfehler fest.
Korrigiert ihn und überträgt erneut.
Dann ist in der neuen XML-Datei nur das eine Objekt mit dem korrigierten Rechtschreibfehler enthalten.
(Es werden von der Software nur die Änderungen seit der letzten Übertragung exportiert)
Die anderen 4 Objekte sind futsch.
stoffel ist offline  
Alt 21.10.2009, 17:23  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.240
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Das ist dann Schicksal. Entweder bei jedem Seitenaufruf prüfen oder Cronjob, etwas anderes wird ohne eigenen Server technisch exakt gar nicht möglich sein.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 27.10.2009, 12:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wenn Du einen software-initiierten FTP-Aufruf machst, kein manuelles FTP-Upload, könntest Du zur Laufzeit das xml-File in einen (micro-)Timestamp-Namen umbenennen.
Dein Verarbeitungsscript prüft jetzt auf eine oder mehrere xml-Dateien und parst diese in Reihenfolge ihres Dateinamens. Dafür kannst DU trotzdem CRON verwenden, damit Du nicht so eine lange Liste abzuarbeiten hast. Der CRON Job kann dann aber wesentlich gemütlicher herangehen. Sekündlich ist jedenfalls Wahnsinn.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 27.10.2009, 19:09  
Neuer Benutzer
 
Registriert seit: 01.10.2008
Beiträge: 17
PHP-Kenntnisse:
Anfänger
stoffel befindet sich auf einem aufstrebenden Ast
Standard

Ja, genau so würde ich das gerne machen!
Aber leider habe ich auf den FTP-Upload keinen Einfluss.
Den übernimmt dieses Makler-Programm.
(Das ist so ein Teil, wo man Objekte einmal eingibt und dann in mehrere Börsen exportieren kann)
Meine Schnittstelle ist also nur eine von vielen.
Ich kann dort lediglich FTP-Zugangsdaten und genau einen Dateinamen angeben.
Die Möglichkeit, dem Dateinamen den aktuellen Timestamp mitzugeben, gibt es dort leider nicht.
stoffel ist offline  
Alt 27.10.2009, 21:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Genaugenommen ginge es sogar ohne Timestamp als Namen, dafür könnte ja das Datum der Datei herhalten. Aber solange Du nicht verhindern kannst, dass ein Upload den letzten überschreibt sehe ich keine Möglichkeit.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Upload script datei type falsch erkannt Marti95. PHP Tipps 2009 27 14.09.2009 15:32
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Includete Datei nicht gleich ausgeben Madden PHP-Fortgeschrittene 1 12.05.2005 00:19
aus php datei eine pdf datei erzeugen lassen raffnix PHP-Fortgeschrittene 5 04.02.2005 15:08
[Erledigt] mail versand mit anhang (-- fopen(), fread(), filesize() --) PHP Tipps 2005 5 29.01.2005 18:36
xfdf Datei mit PHP an eMail senden Problem: Leere Datei PHP Tipps 2004-2 1 07.12.2004 12:25
Dateien lesen und schreiben [mehr als: r,a,w]? PHP Tipps 2004 4 24.10.2004 18:53
Riesige Datei verarbeiten Ohrwurm83 PHP Tipps 2004 10 21.10.2004 11:41
Zeilenumbrüche & Neudatein mit PHP PHP Tipps 2004 5 21.10.2004 11:38
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
Datei als hochgeladene Datei in $_FILES-Array abrufen PHP Tipps 2004 1 19.09.2004 03:49
nach phpupload keine berechtigung auf hochgeladene Datei PHP Tipps 2004 2 10.09.2004 22:48
[Erledigt] datei editieren PHP Tipps 2004 1 10.09.2004 20:33
(ich schonwieder) Link seite automatisch imported_DJ Nuno PHP Tipps 2004 14 19.08.2004 17:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
xml datei mit cron job verarbeiten, php script dateien von ftp abrufen, dateien sofort hochladen, webseite hochgeladenes dokument verarbeiten php, cronjob wenn datei per ftp hochgeladen wurde, hochgeladene datei mit php bearbeiten, fertiges skript für xml immobilien, purftp hochgeladene er url aufrufen, parsen einer hochgeladenen datei php, ftp upload zur börse xml, hochgeladene dateien sieht man nicht gleich ftp, hochgeladene datei bearbeiten php, php upload sofort verarbeiten, ftp cron dateien verarbeiten, php hochgeladene datei mit ftp, hoch geladene pdf datei zusammen bearbeiten, pdf parsen und automatisch umbenennen, hochgeladene ftp bearbeiten, php datei per ftp überschreiben, kann ftp php verarbeiten

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum