PHP nach FTP-Transfer ausführen

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PHP nach FTP-Transfer ausführen

Postby jcvmaster » 15. November 2006 22:22

Hallo zusammen,
Ich plane eine kleines Programm (bzw. mehrere) und überlege ob ich dafür XAMPP einsetzen könnte.
Im Moment ist meine Überlegung die Folgende:

Ich möchte ein XML-File per FTP an den XAMPP übertragen.
Anschließend soll das File automatisch zerlegt und einige Inhalte
in die SQL-Datenbank eingepflegt werden.
Ich denke, das Zerlegen kann man irgendwie mit PHP machen (Parser, DOM, was auch immer), den SQL-connect sicher auch.
Jetzt muss nur, immer wenn der FTP-Server ein File empfängt,
dieser "Einfplegevorgang" automatisch ausgeführt werden (d.h. das PHP-Script/-Programm/-Objekt ausgeführt werden).

Ich habe gehört, dass dies mit XAMPP möglich sein soll,
allerdings habe ich trotz intensiver Suche bisher keine Infos dazu gefunden.

Wäre super, wenn jemand da etwas zu sagen könnte!!
(An Infos zu wie-baue-ich-xml-ins-sql bin ich natürlich auch dringend interessiert)

Danke im Vorraus und schöne Grüße,
Jan
jcvmaster
 
Posts: 8
Joined: 15. November 2006 22:10

Postby deepsurfer » 16. November 2006 09:08

Ich habe gehört, dass dies mit XAMPP möglich sein soll,
allerdings habe ich trotz intensiver Suche bisher keine Infos dazu gefunden.


http://community.apachefriends.org/f/viewtopi ... light=task
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby jcvmaster » 16. November 2006 09:48

Hallo deepsurfer,
danke für die Antwort, die Task-Idee hatte ich auch schon.
Aber ich suche an sich nichts zeitgesteuertes, sondern etwas, was auf die ftp-Übertragung reagiert. Diese sollte die Ausführung "antriggern"....

Schöne Grüße,
Jan
jcvmaster
 
Posts: 8
Joined: 15. November 2006 22:10

Postby deepsurfer » 16. November 2006 10:01

Aber ich suche an sich nichts zeitgesteuertes, sondern etwas, was auf die ftp-Übertragung reagiert. Diese sollte die Ausführung "antriggern"....

Ohne Programmier Kenntnisse würde ich jetzt Sagen.."Nein".

Ein Gedankengang:
Wenn Du aber PHP beherschst könntest du versuchen ein phpscript zu schreiben das durch den "at" Befehl jede Minute gestartet wird.
Dieses Script prüft dann erstmal ob irgendwas im upload Verzeichnis liegt, wenn ja, dann soll das script weiter machen mit den Aufteilfunktionen, wenn das script fertig ist soll es das vorhanden File in ein anderes Verzeichnis (Backup) verschieben, sodass das Uploadverzeichnis wieder leer ist.

Sollte dementsprechend kein File im Upload liegen soll das Script sich beenden, es wird ja durch den "at" nach einer Minute wieder gestartet.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby martinpre » 16. November 2006 15:37

was spricht dagegen, dass du das File per Php-Uploadfunktionp uploadest?
martinpre
 
Posts: 405
Joined: 22. May 2006 16:14
Location: Nähe Tulln / Österreich

Postby jcvmaster » 16. November 2006 17:50

Wie meinst du das - "PHP-Uploadfunktion"?
Das File soll ja von einem entferntem Rechner auf den XAMPP geschoben werden. Dabei soll natürlich ein Standard-Protokoll benutzt werden (also an sich FTP) - insbesondere da der Client ja auch den Kommunikationsweg unterstützen muss.
Wenn ich das komplett in PHP abbilden wollte, dann müsste ich doch auf dem XAMPP-Server sowohl einen Port aufmachen, als auch sockets/pipes einrichten....
Oder meinst du das anders?
jcvmaster
 
Posts: 8
Joined: 15. November 2006 22:10

Postby deepsurfer » 16. November 2006 17:57

Jaein...

ich denke martinpre meint es so..
Es gibt unzählige Uploadscript auf phpbasis, eben diese Scripte kann man dazu bringen nach Beendigung des uploads, direkt mit einer weiteren Funktion weiterlaufen zu lassen. In diesem Fall dein vorhandenes Script was du nutzt um die XML etc Sachen zu sortieren.
Da man anhand des phpuploads auch direkt einen bezug auf einen Dateinamen hat der nun verwertet werden kann.

Damit umgeht man auch elegant die Probleme wie man zeitnah nach einem Upload die Dinge in die Sortierung bekommt.

Nach Abschluss kannst du dann auf dem Bildschirm entweder das Ergebnis der arbeit anzeigen lassen, bzw. durch eine Message anzeigen lassen das alle Daten verarbeitet wurden.
Das alles läuft dann anhand eines einzigen Webinterfaces ab.

Es sind ja auch nur Ideen, da wir ja dein komplettes Konzept nicht kennen und aus den wenigen Sätzen zum Vorgang auch nur annähernd uns etwas von deiner Vorstellung zusammen reimen können.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby martinpre » 16. November 2006 21:05

genau :D
martinpre
 
Posts: 405
Joined: 22. May 2006 16:14
Location: Nähe Tulln / Österreich

Postby jcvmaster » 21. November 2006 15:26

Hallo,
danke für eure Ideen, aber leider funktioniert das so nicht.
Zum Zeit des Transfers ist ja kein Browser mit dem XAMPP-Server verbunden.
Das heißt folgendes: Ein Client, auf dem ein Systemdienst läuft, lädt eine Datei per FTP auf den XAMPP-Server hoch.
Dieser muss diese dann zerlegen und ins SQL einbauen - das passiert via PHP (PDO...).
Es ist keine Browser-Session aktiv, es ist auch ggf. kein Benutzer an irgendeiner der Maschinen!
Die PHP-Objekte müssen also transparent im Hintergrund ausgeführt werden!

Ich hatte jetzt noch selber folgende Idee:
Mit eine Port-Listener auf Port21 müsste man eigentlich den Event feststellen.
Dieser Listener (in PHP geschrieben), könnte nun seinerseits das PHP-Skript zum Einpflegen usw. starten.
Nur jetzt die Frage: Wie bekomme ich den Listener im Hintergrund ans laufen.
Evtl. mit einem Task "php.exe listener.php /...", das ist allerding nicht ganz so schön.
Da der Apache ja eh läuft, würde ich den Listener darin gerne integrieren.
Also ist meine Frage:
- Kann man den Apache selber als Port-Listener "missbrauchen", der dann PHP ausführt, oder kann man in die Apache-Start-Konfiguration irgendwie einen Port-Listener einbauen, der dann permanent im Hintergrund läuft??

Danke & schöne Grüße,
Jan
jcvmaster
 
Posts: 8
Joined: 15. November 2006 22:10

Postby Wiedmann » 21. November 2006 15:41

Ein Client, auf dem ein Systemdienst läuft, lädt eine Datei per FTP ... hoch.

Kann der das nicht auch per HTTP?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jcvmaster » 21. November 2006 16:07

Hmm,
habe ich mir noch keine genaueren Gedanken gemacht,
HTTP-Upload ist an sich je eher unüblich...
Aber wie sollte das dann funktionieren?
jcvmaster
 
Posts: 8
Joined: 15. November 2006 22:10

Postby Wiedmann » 21. November 2006 16:19

HTTP-Upload ist an sich je eher unüblich...

Wie kommst du da drauf? Ist eine ganz alltägliche Vorgehensweise... (wer benutzt heute in den Zeiten von NAT noch FTP?)

Aber wie sollte das dann funktionieren?

Versteh die Frage nicht...
Aber entweder frägst du den, der dir das PHP-Script mit der XML-Zerlegung schreibt, oder den, der dir diesen Systemdienst-Client schreibt.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 37 guests