Dummy-X

Informatica a portata di tutti

Creare un Feed RSS con PHP e MySQL

14 Novembre 2018 / DEV / 45 visualizzazioni
Scritto da  

Trasformare il risultato di una query in un flusso in xml

Qualche tempo fa ho scritto cos’è e come funziona un Feed RSS, oggi invece vedremo come crearne uno partendo dai risultati di una query MySQL e un file PHP.

L’unico codice che deve contere il file è quello sottostante

<?php
$host = "";
$database = "";
$user = "";
$password = "";

$titlefeed = "Nome del feed";
$linkfeed = "https://www.selectallfromdual.com/blog";
$descfeed = "Descrizione del feed";

$query = "select pubDate, title, link, description from table";

$conn = new PDO("mysql:host=$host; dbname=$database", $user, $password);

    $rss = new SimpleXMLElement('<rss/>');
    $rss->addAttribute('version','2.0');

    $channel = $rss->addChild('channel');
    $channel->addChild('title', $titlefeed);
    $channel->addChild('link', $linkfeed);
    $channel->addChild('description', $descfeed);

    $stmt = $conn->query($query);

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
            $item = $channel->addChild('item');
            foreach ($row as $key => $value) {
                    $item->addChild($key, normalizzaxml($value));
            }
    }

   echo str_replace("<?xml version=\"1.0\"?>\n", '',$rss->asXML());
?>

l’unica accortezza sta nella composizione della query, in quanto gli alias delle colonne devono essere unicamente quelli utilizzati dalla struttura xml del feed e devono chiamarsi esattamente pubDate, title, link, description.

Ovviamente questa non è una versione definitiva dello script, è possibile infatti migliorarlo anche cambiando la versione dell’XML. È consigliabile utilizzare un limit nella query di estrazione in modo da non estrarre un RSS lungo quanto tutto il contenuto della tabella di estrazione, altrimenti si rischiano timeout da parte dei client.

Condividi se l'articolo ti è piaciuto, ci aiuterai a crescere
Francesco
Fondatore e amministratore di Dummy-X dal 2007, condivido interessi, idee, progetti, e soluzioni informatiche. Non vendo prodotti, mi limito a descrivere tecnologie e a mettere a disposizione gli strumenti adatti per poter realizzare idee. Tutto ciò che scrivo è frutto della mia esperienza lavorativa e della mia voglia di imparare. Da sempre studio l'informatica in tutte le sue angolazioni (software, hardware, reti e sicurezza) e negli ultimi anni mi sono specializzato nello sviluppo di web applications. Sono sempre aperto a nuove sfide e alla ricerca e conoscenza delle nuove tecnologie.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *