Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Lettura RSS in PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    272

    Lettura RSS in PHP

    Codice PHP:

    <?php
    $varFeed 
    "http://hackmix.altervista.org/syndication.php?fid=5&limit=15"// Nome del file XML
    $tagElements "item"// Nome del TAG XML che racchiude ogni elemento

    // Variabili globali
    $insideitem false;
    $tag "";
    $title "";
    $link "";

    function 
    startTAG($parser_handle$name$attrs)
    {
        global 
    $insideitem$tag$title$link$tagElements;
        
        if (
    $insideitem)
            
    $tag $name;
        elseif (
    strtolower($name) == $tagElements)
            
    $insideitem true;
    }

    function 
    endTAG($parser_handle$name)
    {
        global 
    $insideitem$title$link$tagElements;
        
        if (
    strtolower($name) == $tagElements
        {
            echo 
    "[*]<a href=\"" trim($link) . "\" title=\"" trim($title) . "\">" trim($title) . "</a>";
            
    $title "";
            
    $link "";
            
    $insideitem false;
        }
    }

    // Lettura dei dati
    function readData($parser_handle$data
    {
        global 
    $insideitem$tag$title$link;
        
        if (
    $insideitem
        {
            switch (
    strtolower($tag)) 
            {
                case 
    "title":
                    
    $title .= $data;
                break;
                
                case 
    "link":
                    
    $link .= $data;
                break;
            }
        }
    }

    // Creazione del parser...
    $xml_parser xml_parser_create();

    // Gestore eventi: indico le funzioni che determinano inizio e fine di ciascun elemento da leggere...
    xml_set_element_handler($xml_parser"startTAG""endTAG");

    // Gestore eventi: indico la funzione che si occupa della lettura dei dati...
    xml_set_character_data_handler($xml_parser"readData");

    // Apertura feed RSS...
    $feedRSS fopen($varFeed,"r") or die("Errore di lettura!");

    // Leggo
    echo "<ul>";
    while (
    $data fread($feedRSS4096)) {
        if (!
    xml_parse($xml_parser$datafeof($feedRSS))) {
            die(
    sprintf("XML error: %s at line %d",
                        
    xml_error_string(xml_get_error_code($xml_parser)),
                        
    xml_get_current_line_number($xml_parser)));
        }
    }
    echo 
    "[/list]";

    // Operazioni finali per chiudere lo streem XML e rilasciare il parser...
    fclose($feedRSS);
    xml_parser_free($xml_parser);
    ?>
    Questo qui sopra è il mio codice PHP (index.php) che dovrebbe leggermi i miei Feed RSS.
    Però quando provo mi da errore: Errore di lettura!
    Mi dite da cosa può essere casuato?
    I feed sono questi: http://hackmix.altervista.org/syndic...fid=5&limit=15

    Grazie mille! =D

  2. #2
    Utente di HTML.it L'avatar di DjBart
    Registrato dal
    Jan 2009
    Messaggi
    346
    Non vedo nessun errore , ansi funziona...

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    272
    Io con altri feed .xml mi funziona, ma con quello che vi ho linkato io no!


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    141
    ciao a tutti
    ho provato lo script e funziona

    come faccio però ad avere a video, oltre all'elenco dei link, anche le previews delle notizie?
    ad esempo del televideo della rai
    un lettore come feedreader lo fa così come da file allegato

    grazie
    matteo
    Immagini allegate Immagini allegate

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    272
    Ma allora il problema è del Feed ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    272
    Google Reader me lo accetta come Feed

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    141
    no, il problema è solo che venga visualizzato anche il testo (o meglio l'inizio del testo) della notizia, olte al link con il titolo della notizia

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    272
    Quindi come risolvo?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    141
    non lo so, veramente io chiedevo come posso risolvere io questa cosa

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    141
    ho modificato questo pezzo di codice perchè ho più indirizzi URL dai quali leggere gli rss

    for ($n=0; $n<2; $n++)
    {
    $feedRSS = fopen($varFeed[$n],"r") or die("Errore di lettura!");
    //Leggo
    echo "<ul>";
    while ($data = fread($feedRSS, 4096))
    {
    if (!xml_parse($xml_parser, $data, feof($feedRSS)))
    {
    die(sprintf("XML error: %s at line %d",
    xml_error_string(xml_get_error_code($xml_parser)),
    xml_get_current_line_number($xml_parser)));
    }
    }
    }
    echo "[/list]";

    ovvio non funziona come vorrei, mi legge solo il primo indirizzo contenuto nell'array $varFeed[0]
    die() mi interrompe l'esecuzione
    come posso fare in modo che legga anche gli altri indirizzi che sono racchiusi nell'array $varFeed[$n]?

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.