Erstellen eines Event-Listener in PHP, wartet auf XML-Inhalt

stimmen
18

Ich brauche ein Ereignis-Listener zu erstellen. Ich bin ein Anfänger so freundlich sein :)

Im Grunde bin ich auf page1.php (PHP-Datei); Ich möchte in einer Schleife page2.xml (xml-Datei) für einige Informationen gehen zu überprüfen, die zu einem bestimmten Zeitpunkt empfangen werden sollen. Entweder überprüfen sie die ganze Zeit, oder warten, und alle 5 Minuten oder so zu sehen, ob einige Informationen dort empfangen wurden. Eine von ihnen für mich arbeiten.

Wenn keine Informationen haben bereits nach wenigen Minuten empfangen worden ist, dann will ich wieder die Schleife laufen (bis sie empfangen wird), ansonsten, vorwärts zu bewegen und etwas zu tun mit meinen neu empfangenen Informationen. Dieser Teil Ich habe kein Problem mit, nur den Ereignis-Listener selbst. Ich konnte die Funktion nicht finde ich überall verwenden sollte. :( Ich brauche nur zu prüfen und den Inhalt der XML-Datei jeder so oft abgerufen werden.

Ich bin nicht so sicher, wie ich über diese gehen soll, wenn es nicht nur eine Funktion, die dies tut, aber ich konnte nicht viel finden, wenn ich für „Ereignis-Listener php“ gesucht.

Jede mögliche Hilfe würde geschätzt: Verweis auf tutorials / Beispielcode / sogar sagt mir nur, welche Keywords ich sein soll gesucht oder was ich brauche zuerst zu lernen, um dies zu tun.

Vielen Dank!

Veröffentlicht am 21/12/2011 um 23:17
vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
1

Nun, zunächst einmal sollten Sie die Terminologie verstehen Sie verwenden. PHP ist nicht eine ereignisgesteuerte Sprache, es ist eine Anfrage gesteuerte Sprache. Eine Anforderung kommt in den Web-Server, PHP parst sie und eine Antwort zurück an den Anforderer gesendet. Zu keinem Zeitpunkt gibt es Ereignisse ausgelöst, dass Sie bearbeiten oder verarbeiten kann. Sie können Ihr eigenes „Event-System“ umzusetzen, aber letztlich das ist viel mehr Arbeit als das, was Ihr Anwendungsfall zur Folge hat.

Ihre beste Wette ist wahrscheinlich AJAX nutzen und kontinuierlich machen Anfragen an Ihren PHP - Skript , bis Sie die Daten zurück , die Sie suchen. Letztlich müssen Sie über das lernen , XMLHttpRequestJavaScript - Objekt. Nachdem Sie verstehen , wie asynchrone Anforderungen machen Verwendung von JavaScript erhalten Sie bei aussehen können setInterval()Verfahren, wie wiederholt eine Anfrage zu.

Sobald Sie wiederholen asynchrone Anfragen stellen kann, sollte es ein relativ einfacher Prozess der Erstellung eine Webseite, wo Sie die AJAX-Anfragen auslösen können gesendet werden.


Es besteht keine Notwendigkeit für eine Schleife in der PHP-Code. Die Schleife wird am anderen Ende effektiv getan. Hier ist ein Text Workflow, die Sie folgen können:

  1. Gehen Sie zu einem Ort entwickelt, um Ihre AJAX Anrufe auslösen und auslösen sie.
  2. Machen Sie Ihre Asynchron-Anfrage an Ihrem PHP-Skript.
  3. In Ihrem PHP-Skript, um die XML-Datei und prüfen, ob die notwendigen Inhalte öffnen.
  4. Gibt eine Antwort in Form eines JSON-Objekt. Eine Antwort kann die Daten bedeuten nicht aktualisiert wurde, die andere Antwort bedeutet, dass die Daten aktualisiert.
  5. Analysieren Sie die Antwort, wenn die Daten nicht wiederholen von Schritt aktualisiert wurde (2). Wenn die Daten aktualisiert wurden weiterhin (6) Schritt.
  6. Zeigen Sie eine feierliche Begrüßung, dass Ihre Daten aktualisiert wurden oder eine Mitteilung, dass wir immer noch darauf warten, dass die Daten aktualisiert werden. Vielleicht können Sie die Anzahl der Versuche haben auch, an der Seite.
Beantwortet am 21/12/2011 um 23:57
quelle vom benutzer

stimmen
0

Ich habe so etwas wie dies ein Inbox-Parser in PHP zu schreiben. Sie sind die beste Wahl ist:

Code , page1.phpin dem Sie nur 2 Dinge tun müssen: Lesen von XML aus , page2.xmlund wenn es etwas „Neues“ nur führt die Daten-Parsing - Code ist.

Richten Sie einen Cron - Job (wenn Sie unter Linux sind) alle 5 Minuten auszuführen oder so (Cron - Befehl ist so etwas wie: php /path/to/page1.php). In gleicher Weise, wenn Sie Windows Setup einen geplanten Task können und den gleichen Befehl auszuführen. Beachten Sie, dass der vollständige Pfad zu Ihrer PHP - Installation in sein sollte PATHUmgebungsvariable.

Beantwortet am 22/12/2011 um 00:20
quelle vom benutzer

stimmen
1

Ich habe die folgenden:

Automatisch in der Datenbank gespeichert jedes Mal etwas Neues kam.

Dann lief ein PHP - Schleife , die alle paar Minuten überprüft , um zu sehen , ob es etwas Neues in der Datenbank , die die Parameter dieses neuen Ereignisses passt (einschließlich , dass es innerhalb des Zeitrahmens der letzten Minuten happenned). Ich verwendet flush();und dann sleep(120);in der Schleife , die Schleife zu erhalten zu halten alle paar Minuten laufen, bis die neue Info wobei in diesem Fall kam es wird break();oder die();.

Beantwortet am 03/01/2012 um 23:57
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more