Visualizzazione risultati 1 fino 15 di 15

Discussione: Leggere file RSS XML

  1. #1
    cognolatom non è connesso Neofita
    Data registrazione
    08-08-2007
    Messaggi
    9

    Predefinito Leggere file RSS XML

    Salve a tutti, è possibile leggere un file RSS XML da una fonte esterna al sito tramite un parser XML in una pagina PHP?

    Grazie
    Saluti

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per leggere un file remoto puoi utilizzare fsockopen o cURL e poi passare il contenuto al parser.
    Però il file deve essere su un server presente sulla whitelist o sbloccare la whitelist.

  3. #3
    cognolatom non è connesso Neofita
    Data registrazione
    08-08-2007
    Messaggi
    9

    Predefinito

    Ciao Andrea non sapevo ci fosse una white list come si fa a sbloccarla? Ma poi... non riesco a parsare direttamente il file con simplexml? A cosa servono quelle classi che mi hai menzionato?

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per sbloccare la whitelist vai Pannello di Controllo -> AlterSito -> Risorse & Upgrade -> Server to server e procedi con l'identificazione.
    Puoi leggere anche qui: [PHP 5] Problema con simpleXML
    Ecco un esempio:
    Codice PHP:
    <?php
    $url
    = "http://www...........";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    $out = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($out);
    ...
    ...
    ...
    ?>
    Ultima modifica di andreafallico : 10-10-2009 alle ore 23.05.04

  5. #5
    L'avatar di zingus
    zingus non è connesso Utente giovane
    Data registrazione
    02-09-2003
    Messaggi
    83

    Predefinito

    Per quanto quello che ti sta indicando andreafallico sia assolutamente corretto, di sbattone atroce, all'atto pratico, si tratta.

    RSS e ATOM (che ad ogni fine pratico è RSS3) sono generati da un infinità di sistemi diversi e seguono tre o quattro diverse versioni di standard, alcune abbastanza vetuste.

    Oltretutto le idosincrasie dei server altervista rendono oltremodo più convoluto lo sviluppo di una soluzione definitiva.

    Suggerirei, quindi, per risparmiarci in sanità mentale:

    - simplepie (http://simplepie.org/)
    - magpie (http://magpierss.sourceforge.net/)

    con una spiccata preferenza per il primo, che è meglio mantenuto, più vivacemente aggiornato, e l'ho testato con altervista e funziona.
    Ultima modifica di zingus : 12-10-2009 alle ore 01.22.41

  6. #6
    cognolatom non è connesso Neofita
    Data registrazione
    08-08-2007
    Messaggi
    9

    Predefinito

    Ho provato il seguente codice ma non sembra funzionare qualcuno può indicarmi dove sbaglio?

    <?php

    $url = "http://excelvba.altervista.org/Forum/VBA.xml";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    $out = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($out);


    foreach ($xml->item as $item) {
    echo $item->title, '<br />';
    }

    ?>

  7. #7
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da cognolatom Visualizza messaggio
    Ho provato il seguente codice ma non sembra funzionare qualcuno può indicarmi dove sbaglio?
    Codice PHP:
    <?php

    $url
    = "http://excelvba.altervista.org/Forum/VBA.xml";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    $out = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($out);


    foreach (
    $xml->item as $item) {
    echo
    $item->title, '<br />';
    }

    ?>
    Deve essere così:
    Codice PHP:
    <?php
    $url
    = "http://excelvba.altervista.org/Forum/VBA.xml";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    $out = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($out);
    foreach (
    $xml->xpath('//item') as $item) {
    echo
    $item->title.'<br />';
    }
    ?>

  8. #8
    cognolatom non è connesso Neofita
    Data registrazione
    08-08-2007
    Messaggi
    9

    Predefinito

    Grazie 1000 Andrea! Funziona perfettamente!!!!!!!!!!!!!

  9. #9
    Guest

    Predefinito

    l'ho provato anch'io ma in locale funziona mentre quando lo carico via ftp su Altervista no.
    mi da il seguente errore:
    Fatal error: Cannot instantiate non-existent class: simplexmlelement in /membri/meteomontebello/readwdfd.php on line 20

  10. #10
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  11. #11
    Guest

    Predefinito

    fatto... pualcosa è cambiato ma sempre errore da, te lo posto:

    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /membri/meteomontebello/readwdfd.php:20 Stack trace: #0 /membri/meteomontebello/readwdfd.php(20): SimpleXMLElement->__construct('') #1 {main} thrown in /membri/meteomontebello/readwdfd.php on line 20

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    La whitelist è sbloccata?
    Poi aggiungi echo così:
    Codice:
    $url = "http://www...........";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    echo $out = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($out);
    e scrivi il risultato.

  13. #13
    Guest

    Predefinito

    la whitelist mi sembra di averla sbloccata dal pannello di controllo, mente l'echo che dici tu di mettere non fa altro che estrarmi tutti i dati... a me ne servono solo alcuni.

    non ci capisco più nulla.

  14. #14
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Io ti avevo scritto di inserire echo perchè ti restituiva quell'errore, per vedere se leggeva il file.

  15. #15
    Guest

    Predefinito

    Risolto grazie. colpa della mia incompetenza.

    Grazie Alberto

Regole di scrittura

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