Loading:

PHP 7 News & Updates v7.0 - 7.4 - book

Jak stworzyć kanał RSS z danymi z bazy danych

Udostępnianie danych w formacie kanałów RSS jest obecnie bardzo popularne, postaram się pokazać jak łatwo stworzyć taki kanał.

Listing 1.0 zawiera kod pliku moj_rss.php, generuje on konstrukcję pliku xml z danymi z bazy.
Następnie ciąg $kanałRSS zostaje zapisany do pliku moj_rss.xml.

Do pliku moj_rss.php należy ustawić crona np na 10 min, dzięki czemu plik moj_rss.xml będzie aktualizowany co 10 min.

*cron - narzędzie do cyklicznego wywoływania skryptu.

Aby ustawić crona na serwerze home.pl wystarczy nadac mu nazwe o takiej konstrukcji: cron-10min.php i umieścić go w głównym katalogu strony.

Należy też stworzyć pusty plik moj_rss.xml i nadać mu prawa dostępu 777

Wygenerowany przez nas plik XML będzie miał taką konstrukcje:

<rss version="2.0">
  <channel>
    <title></title>
    <description></description>
    <link></link>

  </channel>
</rss>



Napisz Artykuł

Listing

// LISTING 1.0 Plik moj_rss.php
<?php
function lacz_bd()
{  
  $db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');  
    if (! $db)
      return false;
   $db->autocommit(TRUE);
   return $db;
}
// tutaj podajemy dane co do danych xml
$kanalRSS= '<?xml version="1.0" encoding="ISO-8859-2"?>';
$kanalRSS .= '<rss version="2.0">';
$kanalRSS .= '<channel>';
$kanalRSS .= '<title>Mój kanał RSS</title>';
$kanalRSS .= '<description>Tutaj będe udostępniał moje informacje w postaci kanału RSS</description>';
$kanalRSS .= ' <link>http://funkcje.net</link>';
// połaczenie z bazą
$db = lacz_bd();
//zapytanie określające jakie dane ma mieć kanał RSS
// w naszym przypadku pobierzemy 5 najnowszych wpisów z tabeli news
$zapytanie = "SELECT * FROM news ORDER BY data DESC LIMIT 5";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
for ($i=0; $i <$ile_znalezionych; $i++)
        {
        $wiersz = $wynik->fetch_assoc();
        $wpis_id = $wiersz['id'];
        //Generujemy typową konstrukcję XML z danymi z bazy danych
        $kanalRSS .= '<item>';
    $kanalRSS .= '<title>'.$wiersz['title'].'</title>';
    $kanalRSS .= '<link>http://funkcje.net/'.$wpis_id.'/index.html</link>';
    $kanalRSS .= '<description>'.$wiersz['introtext'].'</description>';
        $kanalRSS .= '</item>';
                }
    $kanalRSS .= ' </channel>';
$kanalRSS .= '</rss>';
//Zapisujemy wygenerowany kod XML do pliku moj_rss.xml
$fp = fopen('moj_rss.xml','w');
fwrite($fp,$kanalRSS);
fclose($fp);
?>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=179

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors