Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie kanałów RSS
Forum PHP.pl > Forum > Przedszkole
Fezq
Witam,

chciałbym połączyć kilka kanałów RSS w jeden, aby ułatwić ich wyświetlanie w PHP na stronie. Obecnie dysponuję kodem, który pozwala wyświetlać treści kanałów w formie jeden pod drugim, a chciałbym, aby treści z różnych kanałów przenikały się nawzajem.

Proszę o pomoc.

Aktualne wyświetlanie kanałów RSS
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <link rel="stylesheet" href="css/default.css" />
  5. <script src="js/jquery-1.2.6.pack.js" type="text/javascript"></script>
  6. <script src="js/myScript.js" type="text/javascript"></script>
  7. </head>
  8. <?php require_once "includes/functions.php"; ?>
  9. <div id="wrap">
  10. <div id="mainContent">
  11.  
  12. <div id="content_1">
  13. <?php getFeed("http://feeds.feedburner.com/sportowefakty/TtDh"); ?>
  14. <?php getFeed("http://www.goal.com/en/feeds/news?fmt=rss&ICID=HP"); ?>
  15. </div><!--end content 3-->
  16.  
  17. </div><!--end main content -->
  18.  
  19. </div><!--end wrap-->
  20. </body>
  21. </html>


plik functions.php

  1. <?php
  2. function getFeed($feed_url) {
  3.  
  4. $content = file_get_contents($feed_url);
  5. $x = new SimpleXmlElement($content);
  6.  
  7. echo "<table><ul>";
  8.  
  9. foreach($x->channel->item as $entry) {
  10. echo "<tr><td><li><a href='$entry->link' title='$entry->title' target='_blank'>" . $entry->title . "</a></td><td>" . $entry->pubDate . "</td></li></tr>";
  11. }
  12. echo "</ul></table>";
  13. }
  14. ?>
nospor
1) Co w TABLE robi UL? Jakies podstawy HTML wypadaloby miec
2) No to skoro chcesz by wszystko bylo w jednej tabeli, to TABLE generuj przed funkcją a w funkcji generuj same TR
Fezq
Dzięki, HTML sobie potem ogarnę, to robiłem na szybko. Ale mój problem leży chyba w drugim pliku, a konkretnie przy wywoływaniu kanałów, czyli

  1. <?php getFeed("http://feeds.feedburner.com/sportowefakty/TtDh"); ?>
  2. <?php getFeed("http://www.goal.com/en/feeds/news?fmt=rss&ICID=HP"); ?>


Dlatego treści kanałów są wyświetlane jeden pod drugim, a można jakoś uzyskać efekt żeby zamiast:

KANAŁ 1
KANAŁ 1
KANAŁ 1
KANAŁ 2
KANAŁ 2
KANAŁ 2

było

KANAŁ 1
KANAŁ 1
KANAŁ 2
KANAŁ 7
KANAŁ 3
KANAŁ 5

itd.?
nospor
Cytat
KANAŁ 1
KANAŁ 1
KANAŁ 2
KANAŁ 7
KANAŁ 3
KANAŁ 5

Nadal wszystko jest pokolei, nie widze bys przemieszal kanaly miedzy sobą, wiec moj pierwszy post nadal jest aktualny
Fezq
Jakby były po kolei to by było

KANAŁ 1
KANAŁ 2
KANAŁ 3

A przecież jest inaczej smile.gif

W każdym razie łatwiejsze rozwiązanie problemu, czyli połączenie kilku kanałów RSS w jeden nie jest możliwe?
nospor
No ale po czym chcesz to sortowac? Po dacie?
No to wrzuc wszystko do tablicy, sortuj po czym chcesz, a dopiero potem wyswietlaj
Fezq
Tak, chcę sortować po dacie.

Przykro mi, nie wiem o co chodzi. Co dać do tablicy? Wszystkie kanały RSS?

Zrobiłem coś takiego i nie działa, wyświetlając błąd w "file_get_contents"


  1. <?php
  2. $kanaly = Array('http://feeds.feedburner.com/sportowefakty/TtDh', 'http://www.goal.com/en/feeds/news?fmt=rss&ICID=HP');
  3. getFeed($kanaly);
  4. ?>
nospor
Nie kanaly dodawac do tablicy, tylko wpisy z tych kanalow....

Przenosze, bo z xml problem nie ma zadnego zwiazku. Z racji na maly poziom wiedzy pytajacego, przenosze na przedszkole
Fezq
A jak to zrobić? Jakiś poradnik, cokolwiek? Bo jakoś nic nie mogę znaleźć...
nospor
Ale poradnik do czego? Do dodania elementu do tablicy? To zajrzyj do manuala do dzialu tablice - tam takie podstawy są wyjasniane smile.gif
Fezq
Do dodania "wpisu z tych kanałów", bo nie do końca wiem, o co chodzi :]
nospor
Tu wyswietlasz dane z wpisow
echo "<tr><td><li><a href='$entry->link' title='$entry->title' target='_blank'>" . $entry->title . "</a></td><td>" . $entry->pubDate . "</td></li></tr>";

zamiast je wyswietlac, masz dodawac do tablicy
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.