Visualizzazione risultati 1 fino 12 di 12

Discussione: Lettore RSS in PHP

  1. #1
    Guest

    Predefinito Lettore RSS in PHP

    Ho trovato questo simpatico codice che serve a leggere contenuti in RSS provenienti da qualsiasi sito compatibile, è sufficiente inserire il link RSS nella variabile $url.
    Ecco il codice:

    Codice PHP:
    <?php

    $url
    = "link_rss";
    $rss = simplexml_load_file($url);
    if(
    $rss)
    {
    echo
    '<h1>'.$rss->channel->title.'</h1>';
    echo
    '<li>'.$rss->channel->pubDate.'</li>';
    $items = $rss->channel->item;
    foreach(
    $items as $item)
    {
    $title = $item->title;
    $link = $item->link;
    $published_on = $item->pubDate;
    $description = $item->description;
    echo
    '<h3><a href="'.$link.'">'.$title.'</a></h3>';
    echo
    '<span>('.$published_on.')</span>';
    echo
    '<p>'.$description.'</p>';
    }
    }

    ?>
    Ma non capisco come mai con link ad estensione .xml (tra l'altro molto comuni) non funziona.

    Ad esempio questo è un link RSS di google:
    https://news.google.com/news/feeds?n...c=h&output=rss
    come vedete non ha estensione .xml e quindi inserendolo nella variabile $url funziona tutto regolarmente.

    Mentre questo link RSS di Repubblica.it:
    http://www.repubblica.it/rss/economia/rss2.0.xml
    avendo l'estensione in .xml non funziona, inserendo questi tipi di link nella variabile $url mi rimane la pagina bianca senza il caricamento delle news.

    Qualcosa forse mi sfugge?
    Perché lo script con i link .xml non funziona?
    Ultima modifica di dreadnaut : 07-11-2012 alle ore 16.49.53 Motivo: + indentazione

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Cosa intendi per "non funziona"? C'è qualche messaggio di errore?

    Altrimenti aggiungi all'inizio dello script
    Codice PHP:
    error_reporting(E_ALL);
    e dopo il caricamento dell'xml stampa eventuali errori con
    Codice PHP:
    var_dump( libxml_get_errors() );

  3. #3
    Guest

    Predefinito

    Ecco l'errore che è uscito:

    Warning: simplexml_load_file(http://www.repubblica.it/rss/economia/rss2.0.xml) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /membri/johell/testdea.php on line 5

    Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://www.repubblica.it/rss/economia/rss2.0.xml" in /membri/johell/testdea.php on line 5
    array(0) { }

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Così per controprova, puoi veder come si comporta con questo feed?

  5. #5
    Guest

    Predefinito

    Dà lo stesso errore!

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Uhm, il tuo codice sul mio spazio non sembra avere problemi.

    Hai sbloccato il server-2-server, vero?

  7. #7
    Guest

    Predefinito

    No non l'ho fatto, metto in pericolo la sicurezza del mio sito sbloccandolo?
    E comunque, perché allora il link di google funziona? Anche quello dovrebbe essere visto come sito esterno e quindi non funzionare senza sbloccare server-2-server.

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Perché google è uno dei siti nella white-list sbloccati per tutti, mentre Repubblica no.

    Attivare il server-2-server vuol dire solo poter accedere anche ai siti fuori dalla whitelist, per il tuo sito non cambia altro. Solitamente sono bloccati per evitare che un eventuale malware possa fare più danni del solito su altri siti, partendo da uno su AlterVista.

  9. #9
    Guest

    Predefinito

    Ah capisco.
    Una domanda prima di sbloccarlo:
    Devo indicare su quali server avere lo sblocco, o lo avrò automaticamente su tutti i server?

    A me servirebbe la seconda opzione, se devo indicare manualmente tutti i server (per lo scopo che devo raggiungere) mi è inutile.

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Prima dell'attivazione puoi accedere solo ai server nella whitelist. Dopo lo sblocco, tutti i server.

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Prima dell'attivazione puoi accedere solo ai server nella whitelist. Dopo lo sblocco, tutti i server.
    Grazie 1000 dreadnaut ora funziona!



    edit:
    Ho un ultimo problemino con l'echo del codice, vorrei che una volta che si clicca su una news, la news si apra in una nuova scheda del browser; quindi ho provato a cambiare questa riga:
    Codice PHP:
    echo '<h3><a href="'.$link.'">'.$title.'</a></h3>';
    con questa:
    Codice PHP:
    echo '<h3><a href="'.$link.'" target=\"_blank\">'.$title.'</a></h3>';
    Ma la news continua ad aprirsi nella stessa finestra!
    Come mai? E' la prima volta che il target _blank mi tradisce.
    Posso risolvere in qualche modo?
    Ultima modifica di Johell : 07-11-2012 alle ore 18.56.08

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Guarda l'html risultato della pagina, mi sa che ci saranno degli \ di troppo.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •