Visualizzazione risultati 1 fino 3 di 3

Discussione: PHP: Come catturare titolo e url da un rss?

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito PHP: Come catturare titolo e url da un rss?

    Salve raga :)
    Desideravo catturare il titolo e il link da un file rss (che tramite filtro me ne mostra solo 1, l'ultimo per l'esattezza).
    L'rss è questo:
    Codice:
    *.darkwolf.it/index.php?action=.xml;?type=rss2;sa=news;boards=41;limit=1
    E la porzione di codice che mi interessa è:
    Codice:
            <item>
                <title><![CDATA[Qui ci sarà il titolo]]></title>
                <link>h**p://*.quisitrovaillink.*/</link>
    Pensavo a curl o file_get_contents con espressioni regolari ma magari c'è qualcosa di più facile e veloce?

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Se vuoi evitare di usare le espressioni regolari, puoi usare simpleXML:
    Codice PHP:
    $xml = new SimpleXMLElement('http://www.darkwolf.it/index.php?action=.xml;?type=rss2;sa=news;boards=41;limit=1', null, true);

    $item = $xml->channel[0]->item[0];
    $title = $item->title;
    $link = $item->link;

    echo
    $title, ' ', $link;
    -

    Mentre con le regexp:
    Codice PHP:
    $rss = file_get_contents('http://www.darkwolf.it/index.php?action=.xml;?type=rss2;sa=news;boards=41;limit=1');
    preg_match('/<item>\s+<title><!\[CDATA\[(.+?)\]\]><\/title>\s+<link>(.+?)<\/link>/', $rss, $m);

    $title = $m[1];
    $link = $m[2];

    echo
    $title, ' ', $link;
    Ho anche effettuato vari test sulla velocità, le perfomance sono pressochè simili.
    Ultima modifica di javascripter : 16-11-2010 alle ore 20.07.21

  3. #3
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Immaginavo ci fosse l'alternativa :)
    Funziona benone, grazie mille ;)
    -
    Edit: e se invece dell'ultimo link e dell'ultimo titolo volessi catturarli random da un rss con più voci? (mantenendo sincronizzato titolo e link ovviamente) :)

    Riedit:
    Codice PHP:
    $item = $xml->channel[0]->item[rand(1, 20)];
    (funziona correttamente, peccato che usandolo nella sign dinamica va fuori sincronia :P )
    Ultima modifica di darkwolf : 16-11-2010 alle ore 20.45.43 Motivo: Edit...

Regole di scrittura

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