PHP Datei automatisch jede Sekunde aktualisieren?
Hallo zusammen,
ich suche nach der besten und einfachsten Möglichkeit, eine PHP-Deitei (den Code darin, nicht die Seite) zu aktualisieren. Ich möchte auf meiner Seite zum Beispiel: - die Uhrzeit, - aktuelle Datenbank-Abfragen (auf die Sekunde genau), - einen Chat, - einen Hinweis bei neuen Privatnachrichten anzeigen lassen.
Dafür gibt es ja verschiedene Möglichkeiten (z.B.: mit iFrames, WebSockets oder LongPolling), jedoch würde ich gerne wissen wollen, welche Technik oder evtl. sogar welche Programmiersprache dafür die beste ist.
Mit JavaScript kenne ich mich übrigens noch(!) gar nicht aus, deswegen verstehe ich z. B. long polling noch nicht wirklich (zumindest die Umsetzung), habe bisher nur mit PHP programmiert...
Ich wäre euch für verständliche Antworten sehr dankbar!
4 Antworten
Die beste Technik ist die Nutzung von Websockets. Gründe sind unter anderem:
- bidirektionale Server-Client-Verbindung mit Kommunikation in (fast) Echtzeit
- sicher
- ressourcensparend
- nutzen die gleichen Ports wie HTTP/S, werden also nicht geblockt
Alternativ dazu wäre Comet / Long polling (z.B. via AJAX-Requests). In beiden Fällen musst du dich mit JavaScript auseinandersetzen. Bibliotheken wie jQuery können dir die Arbeit dabei vereinfachen.
Beispiele für beide Techniken gibt es viele. Für Websockets z.B.:
Und für Comet:
Woher hast du diese Information?
Long polling ist nach wie vor ebenso eine legitime Technik.
Generell werde ich dir so etwas nicht ausreden. Aber du wirst dich mit dem Thema Server vorher noch weiter beschäftigen müssen. Sicherheit ist bspw. ein Punkt, über den du im Vorfeld gut informiert sein solltest. Außerdem müsste dein Server durchgehend laufen, sofern Webseiten darauf erreichbar sein sollen.
Wenn es dir hingegen reicht, deine Projekte nur lokal auf deinem Rechner über einen Server laufen zu lassen, dann installiere dir XAMPP.
Dass bei dem Hoster keine WebSockets unterstützt werden, weiß ich aus dem Forum dort...
Aber ist es jetzt besser den Hoster zu wechseln (um Websockets nutzen zu können), so wie du das beschrieben hast, scheint die Variante mit den WebSockets leichter und allgemein besser zu sein?
Hmn, ok.. ich habe via Google keine solche Foreneinträge gefunden (https://www.lima-city.de/thread/websockets), aber gut.
Websockets sind nun mal eine neuere Technologie, doch trotz der von mir aufgezählten Vorteile musst du sie nicht unbedingt nutzen. Wie gesagt ist auch Comet nach wie vor eine legitime Technik, die noch sehr häufig ihren Einsatz findet und finden wird. Ob du deswegen nun den Hoster wechselst, liegt bei dir.
Zuerst zu der Uhr :
Die Uhr kannst du in JavaScript,PHP usw. programmieren !
Hab hier mal ein Beispielcode für dich https://pastebin.com/E5weLHMu
Um eine Datenbank Abfrage zu erstellen bräuchte man Erfahrung mit SQL und JavaScript.
Für einen Chat bräuchte man ebenfalls bisschen Ahnung von SQL (Da du eine Datenbank erstellen musst) und PhP.
Lg
Also das mit den Datenbanken ist kein Problem, das kann ich. Was ein Problem ist, ist das automatische Aktualisieren ^^
Wie aktualisiere ich die ganzen Inhalte am besten?
Deswegen frage ich ja, ich muss nämlich gestehen, dass ich zur Zeit komplett ratlos bin... (habe erst vor ein paar Monaten mit dem programmieren begonnen, bin auch noch relativ jung, weiß auch noch nicht wirklich viel zu dem Thema), daher würde ich mich freuen, wenn ihr mir erklären könntet, wie ich das mit dem automatischen Aktualisieren am besten realisieren kann.
Danke!
Nur mal mal zur Begriffsentwirrung: Du willst den Inhalt der dargestellten Seite zyklisch aktualisieren, nicht deinen PHP Code. (selbstmodifizierender Code gilt in der klassischen Programmierung übrigens als hoechst unsauber). Das ist ohne JavaScript kaum realisierbar.
Du kannst dem fremden Client nicht deinen Seiteninhalt aufzwingen, das funktioniert nur auf Anfrage vom Client. Unaufgeforderte Seiten kommen schon an der Firewall nicht vorbei.
Ausserdem ist der Client hinter einer Firewall/Proxy/Natter verborgen. Du müsstest deine Session also irgendwie offenhalten. Ob das theoretisch möglich ist, ist in deinem Fall wahrscheinlich eher von akademischem Interesse. So schwer ist JavaScript ja nun wirklich nicht.
so echtzeit und wie bei einer börse , mussu javascript nehmen und ein push server . am einfachsten kombiniert sich das in einem node.js server
Ok, danke! WebSockets unterstützt mein Hoster (-> http://www.lima-city.de) leider (und komischerweise, wie ich finde) nicht...
Sollte ich mir deswegen einen anderen Hoster suchen oder das ganze mit long polling versuchen?
Ich habe auch schon mal über einen eigenen kleinen Webserver nachgedacht: Wäre das sinnvoll, oder sollte ich damit noch warten bzw. das lieber gleich lassen?