Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne generowanie RSS
Forum PHP.pl > Forum > PHP
netes
Witam.
Mam sobie w bazie danych "nowinki", a dodatkowo na stronie chciałbym mieć RSS z tymi właśnie nowinkami.
Chciałbym, aby przy dodawaniu nowinek do bazy automatycznie dopisywały się one do pliku RSS, nie mam jednak pojęcia jak się do tego zabrać.
Myślałem, żeby przy każdym dodawaniu nowinki skrypt dopisywał nowinkę do pliku rss.xml jednak nie bardzo wiem, jak wskazać mu, w których miejscach ma się "dopisywać" nowy rekord. Czy ktoś mógłby rzucić gotowym przykładem? Z góry dzięki.
artega
Cytat
Mam sobie w bazie danych "nowinki", a dodatkowo na stronie chciałbym mieć RSS z tymi właśnie nowinkami.
Chciałbym, aby przy dodawaniu nowinek do bazy automatycznie dopisywały się one do pliku RSS, nie mam jednak pojęcia jak się do tego zabrać.

Może pobrać np. kilka ostatnich wiadomości i wygenerować nowy plik lub...
Cytat
Myślałem, żeby przy każdym dodawaniu nowinki skrypt dopisywał nowinkę do pliku rss.xml jednak nie bardzo wiem, jak wskazać mu, w których miejscach ma się "dopisywać" nowy rekord. Czy ktoś mógłby rzucić gotowym przykładem? Z góry dzięki.

możesz użyć DOM by załadować obecną strukture pliku xml, dopisać nowe dane do obiektu i zapisać smile.gif
Trobin
Można to zrobić poprzez pętle. Ja w swoim projekcie korzystam z takiego rozwiązania: plik rss.php pobiera z bazy danych newsa, wynik przepuszczam przez pętle
  1. <?php
  2. while ($news=mysql_fetch_array($get_content))
  3. ?>

i zapisuję w tablicy. W ciele tej pętli znajduje się wywołanie pojednyczej wiadomości dla RSS.
  1. <?php
  2. echo "<item>
  3. <title>$news[title]</title>
  4. <link>$adres_strony_z_newsami</link>
  5. <description>$desc</description>
  6. <guid isPermaLink=\"false\">$news[id]</guid>
  7. <pubDate>$news[date]</pubDate>
  8. </item>";
  9. ?>

W tym pliku jest też informacja o tym, że przeglądarka ma ten plik traktować jako dokument xml. Potem wywołuję wszystkie elementy poprawnego pliku RSS
  1. echo "<?xml version="1.0" encoding="$kodowanie"?>
  2. <rss version="2.0">
  3.  <channel>
  4.  <title>$nazwa</title>
  5.  <link>$adres_do_strony_gdzie_sa_newsy</link>
  6.  <language>$jezyk</language>
  7.  <description>$opis_kanalu</description>
  8. <generator>$generator</generator>
  9. ";
(przed każdym " należy dodać \ , ponieważ usunąłem bo się wykrzaczało)
Może trochę za bardzo zamotałem, ale myślę, że da się coś z tego zrozumieć winksmiley.jpg .
A tak poza tym to serdecznie witam, ponieważ jest to mój pierwszy post tutaj smile.gif .
netes
@Trobin
Wielkie dzięki, zrobiłem mniej więcej tak jak napisałeś i działa perfekcyjnie smile.gif

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.