Questo box nel tuo sito?
Fai click su "Get widget".



Mostrare e aggregare feed rss in un sito PHP

In questa pagina vediamo come è tecnicamente possibile inserire o per meglio dire integrare in un sito web o in una singola pagina web scritta in PHP un flusso dinamico di dati e più specificamente informazioni meglio noti con il termine informatico di feed RSS.
Partiamo col fare un paio di considerazioni su una pagina PHP ( acronimo di Personal Home Page).
Il PHP è un linguaggio di programmazione denominato con il termine di Scripting che fino ad una decina di anni fa era il principale strumento di programmazione Web per implementare pagine dinamiche ed ossia quelle pagine il cui contenuto varia a seconda di quello che il Server invia al browser utilizzato sul nostro terminale che sia esso un PC, un notebook, uno Smartphone e via dicendo.
C’è da sottolineare che comunque l’esecuzione del PHP da parte del Server produce un codice in linguaggio HTML che sarà inviato al browser e che farà si che possiamo accedere e usufruire in maniera corretta del contenuto che nel nostro caso sarà un flusso RSS.
In effetti basterà copiare ed inserire all’interno del codice PHP della nostra pagina web il seguente script con l’unica accortezza di cambiare la dicitura ETICHETTA con l’argomento che noi vogliamo che venga visualizzato, al resto penserà il Server e il browser.

    <ul><?php
    $insideitem = false;
    $tag = "";
    $title = "";
    $description = "";
    $link = "";
    function startElement($parser, $name, $attrs) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    $tag = $name;
    } elseif (strtolower($name) == "item") {
    $insideitem = true;
    }
    }
    function endElement($parser, $name) {
    global $insideitem, $tag, $title, $description, $link;
    if (strtolower($name) == "item") {
    printf("<li><strong><a href='%s' title='Leggi: %s' target='_blank'>%s</a></strong><br />",
    trim($link),trim($title),trim($title));
    printf("%s</li>",trim($description));
    $title = "";
    $description = "";
    $link = "";
    $insideitem = false;
    }
    }
    function characterData($parser, $data) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    switch (strtolower($tag)) {
    case "title":
    $title .= $data;
    break;
    case "description":
    $description .= $data;
    break;
    case "link":
    $link .= $data;
    break;
    }
    }
    }
    $xml_parser = xml_parser_create();
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    // Carico indirizzo feed rss delle news di studiocataldi.it
    $fp = fopen("http://feeds.feedburner.com/rssnews.it/ETICHETTA","r")
    or die("Error reading RSS data.");
    while ($data = fread($fp, 4096))
    xml_parse($xml_parser, $data, feof($fp))
    or die(sprintf("XML error: %s at line %d",
    xml_error_string(xml_get_error_code($xml_parser)),
    xml_get_current_line_number($xml_parser)));
    fclose($fp);
    xml_parser_free($xml_parser);
    ?></ul>