Ergebnis 1 bis 20 von 20

Thema: Schreiben eines RSS Feed Reader

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Schreiben eines RSS Feed Reader

    Hallo.

    Ich plan derzeit eine Art Portalseite für Blogs. Auf der Seite stehen dann Blogeinträge der letzten x Tage. Die Einträge wollte ich per RSS auslesen und dann in eine Datenbank (oder einer Textdatei) speichern.
    Allerdings stehe ich hier ein bisschen auf dem Schlauch. Das Auslesen von RSS Feeds ist nicht unbedingt das Thema, sondern vielmehr das automatische Auslesen.
    Ich hatte es so geplant, dass alle x Stunden, ein Prozess auf dem Server aufgerufen wird, welches das Auslesen übernimmt. Alternativ wäre auch denkbar, wenn ein User auf die Seite geht und x Stunden vergangen sind, seit der letzten Aktualisierung, dass dann ein Prozess gestartet wird.
    Ich wollte es auch so universal, wie möglich halten. Sprich, dass mein Projekt auf Windows und auf Linux Servern laufen kann. Als Scriptsprache wollte ich eigentlich php benutzen.

    Wäre AJAX mir dafür eine Hilfe? Wenn ja, gibt es irgendwo deutsche Referenzen/Tutorials dafür?
    Oder gibt es hier andere Lösungsmöglichkeiten?

  2. #2
    Ajax wird dir in diesem Fall nicht viel weiter helfen. Ajax verwendet man zum größten Teil, um Seiteninhalte im Browser ohne Relead zu aktualisieren bzw. nachzuladen.

    Die Feeds zu aktualisieren, immer wenn ein Benutzer die Seite lädt und eine gewisse Zeitspanne verstrichen ist, könnte zu Problemen führen, da genau dieser Benutzer der den Prozess anschubst so lange auf die Seite warten muss, bis die Feeds aktualisiert worden sind. Je nach Menge und Verfügbarkeit kommt dort dann schon eine gewisse Zeit zusammen. Hier könnte man aber einen PHP-Prozess abspalten, was soweit ich weis nur unter *nix Systemen funktioniert.

    Für die andere Möglichkeit brauchst du gewisse Rechte auf dem Server der das Script ausführt um den Cronjob/Task zu erstellen, der das Aktualisierungsscript ausführt - ist aber weitaus angenehmer, da der User davon nichts mitbekommt.

    PHP von Windows auf Linux portieren und umgekehrt ist kein Problem, wenn man ein wenig bei der Entwicklung aufpasst. Beispielsweise die Konstante DIRECTORY_SEPERATOR verwenden wenn man Pfadangaben macht.

    Da fällt mir noch ne möglichkeit ein: Der Benutzer bekommt die Seite ausgeliefert in der sich ein Javascript Block versteckt, der nach einem Timeout per Ajax das Aktualisierungsscript im Server startet. Ist im Grunde möglichkeit 1, ohne das der Benutzer das Aktualisieren durch eine verzögerte Ladezeit der Seite mitbekommt.

  3. #3
    Zitat Zitat von Freezy Beitrag anzeigen
    Die Feeds zu aktualisieren, immer wenn ein Benutzer die Seite lädt und eine gewisse Zeitspanne verstrichen ist, könnte zu Problemen führen, da genau dieser Benutzer der den Prozess anschubst so lange auf die Seite warten muss, bis die Feeds aktualisiert worden sind. Je nach Menge und Verfügbarkeit kommt dort dann schon eine gewisse Zeit zusammen. Hier könnte man aber einen PHP-Prozess abspalten, was soweit ich weis nur unter *nix Systemen funktioniert.

    Für die andere Möglichkeit brauchst du gewisse Rechte auf dem Server der das Script ausführt um den Cronjob/Task zu erstellen, der das Aktualisierungsscript ausführt - ist aber weitaus angenehmer, da der User davon nichts mitbekommt.
    Für die erste Methode gibt es ein Mittel mit cURL.
    Allerdings sind beide Methoden OS-Spezifisch (Pfade, Cronjob/Task), sodass ich dann zwei Versionen machen müsste aber dieses wollte ich, soweit wie möglich, verhindern.

    Aber anscheinend gibt es da wohl wirklich keine andere Möglichkeit.

  4. #4
    Es gibt natürlich noch die Triviallösung: Das erfolgt einfach durch ein ganz normales Skript, welches als Parameter ein Passwort erwartet, um Mißbrauch zu verhindern. Wie man das Skript automatisch aufruft (cronjob, Windows-Tasks etc.) sei jedem Admin selbst überlassen.

    Vorteil: Komplett portabel.
    Nachteil: Jeder, der das System bei sich nutzen will, muß selbst dafür sorgen, daß der Job läuft.

  5. #5
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    Für die erste Methode gibt es ein Mittel mit cURL.
    Allerdings sind beide Methoden OS-Spezifisch (Pfade, Cronjob/Task), sodass ich dann zwei Versionen machen müsste aber dieses wollte ich, soweit wie möglich, verhindern.

    Aber anscheinend gibt es da wohl wirklich keine andere Möglichkeit.
    Also ich könnte mir gut vorstellen, das erstere Methode sehr gut ohne größere Änderungen (höchstens paar Konfigurationen) auf beiden Systemem lauffähig ist. Oder wo genau siehst du dort das Problem?

  6. #6
    Zitat Zitat von Freezy Beitrag anzeigen
    Also ich könnte mir gut vorstellen, das erstere Methode sehr gut ohne größere Änderungen (höchstens paar Konfigurationen) auf beiden Systemem lauffähig ist. Oder wo genau siehst du dort das Problem?
    Bei der ersten Methode hab ich das Problem, dass cURL ein bestandteil von vielen Linux-Distros ist, während man bei Windowssystemen cURL erst einmal runterladen muss.
    Dementsprechend wird cURL auch anders angesprochen.

  7. #7
    Genauso wie du auf Windowssystemen erstmal ein komplettes WAMP-System installieren musst, damit überhaupt was läuft ô_O. Ich glaub ich versteh die Anforderung nicht ganz genau ^^
    Auf meinem Debian Server musste ich btw. auch erstmal PHP neu übersetzen damit cURL mit drin war. Das Php5, das man über den Packetmanager bekommt hat das nicht - zumindest wars vor nem Jahr noch so.

  8. #8
    Zitat Zitat von Freezy Beitrag anzeigen
    Auf meinem Debian Server musste ich btw. auch erstmal PHP neu übersetzen damit cURL mit drin war. Das Php5, das man über den Packetmanager bekommt hat das nicht - zumindest wars vor nem Jahr noch so.
    Weil bei cURL auf eine externe Anwendung zugegriffen wird, die bei vielen Linux Distros ein Bestandteil des Systems ist. Windows hat sowas nicht. Deswegen gibt es unter php Standardgemäß keine cURL Unterstützung mehr.

    Zitat Zitat von Freezy Beitrag anzeigen
    Genauso wie du auf Windowssystemen erstmal ein komplettes WAMP-System installieren musst, damit überhaupt was läuft ô_O. Ich glaub ich versteh die Anforderung nicht ganz genau ^^
    Es geht mir halt darum, dass mein Projekt unabhängig vom Betriebssystem sein sollte. Ich rede jetzt nicht von der Installation eines WAMP oder LAMP Systems.
    Ich möchte, dass mein Projekt auf beiden Systeme gleich läuft und ich möchte nicht zwei Versionen (einmal für Windows Server und einmal für Linux Server) haben, sodass jeder, unabhängig von seinem Server OS, dieses Projekt benutzen kann.
    Also so portabel, wie möglich.

  9. #9
    Also ich bin mir zu 95% sicher, dass auf einem WAMP System mit cURL das hier genause läuft wie auf einem LAMP System. Oder bin ich immernoch auf der falschen Fährte?

  10. #10
    sobald, wie ich das weiss, läuft das nur auf Linux Systemen, da bei cURL eine externe Anwendung aufgerufen wird, die ein Prozess im Hintergrund startet, welches das php Script ausführt.

    Aber das kann sein, dass ich hier falsch liege.

  11. #11
    Ach daher das Missverständniss
    Habs gerade getestet. Meine lokale PHP5 Windows Installation hatte schon im Ordner ./ext eine php_curl.dll. Die musste ich nur noch in die php.ini eintragen und es hat gefunzt. (Nach Apache Restart natürlich)

  12. #12
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    sobald, wie ich das weiss, läuft das nur auf Linux Systemen, da bei cURL eine externe Anwendung aufgerufen wird, die ein Prozess im Hintergrund startet, welches das php Script ausführt.

    Aber das kann sein, dass ich hier falsch liege.
    Das wäre problemlos portabel; auch Windows kennt Dinge wie Multitasking und Interprozesskommunikation. Man muß es nur anders implementieren. Allerdings ist das hinfällig, da php einfach libcurl benutzt; cURL ist eigentlich nur ein Kommandozeilen-Frontend für die Bibliothek.

    Was eher Probleme machen könnte wäre, daß dein Server PHP ohne cURL-Support gebaut hat. Aber das kann man ja per phpinfo() rausfinden.

  13. #13
    ah, ok. Ich war da wohl dann falsch informiert.
    Danke erstmal für die Antworten ^^

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •