Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Output di un file rss

  1. #1

    Output di un file rss

    Ciao ragazzi,
    vorrei aggiungere un rss di questo sito :
    http://www.comune.torino.it/cgi-bin/...feed.cgi?id=56

    Il problema è il seguente:
    se nella barra di internet explore metto questo indirizzo, sul mio browser visualizzo il codice xml, correttamente. Se invece lo salvo, innanzi tutto l'estensione è un .cgi, e se lo apro (con notepad, perche explorer non lo gestisce)i caratteri "romeni" saltano.

    Questo è il motivo per il quale, con il mio codice php, visualizzo un rss "sballato" in quanto "si collega" al .cgi e non l'output della visualizzazione del browser.

    Come posso ovviare a questo ?
    Come posso manipolare direttamente outuput del codice xml ?

    Spero in un vostro aiuto.
    Grazie

  2. #2
    se hai php dai una occhiata qui :

    http://www.php.net/simplexml

  3. #3
    Il codice è il seguente (php-nuke):

    if (!$sorgenterss1==""){
    $content .= "<center>".$nomerss1."</center>
    ";
    $data = implode ("", file ($sorgenterss1));
    preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER);

    if (count($items[1])==0) {
    preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER);}
    for ($i=0;$i<count($items[1]);$i++)
    {
    preg_match_all("|<title>(.*)</title>(.*)<description>(.*)</description>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER);

    $content .="<left><a href=\"".$regs[5][0]."\" target='_blank'>".$regs[1][0]."</a></left>
    ";
    content .="<left>".$regs[3][0]."</left>

    ";
    }
    $content .="<left><a href=\"".$linkprincipale1."\" target='_blank' >www.comune.torino.it/ro</a></left>

    \n\n";

    E' possibile che il comune di TO, metta un rss non gestibile ?
    }

  4. #4
    per forza che non ti funziona
    quello te lo legge come un file di testo (infatti hai un implode su file)

    Prova ad usare qualche funzione che ti trasforma xml in array cerca su google xml2array e trovi cosine carine

  5. #5
    Ho provato anche con il seguente codice, che ha solo il vantaggio di interpretare i tag html, ma "sballa " i caratteri romeni.

    Grazie per la pazienza


    function startElement($parser, $name, $attrs) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    $tag = $name;
    } elseif ($name == 'ITEM') {
    $insideitem = true;
    }
    }

    function endElement($parser, $name) {
    global $insideitem, $tag, $title, $description, $link;
    if ($name == 'ITEM') {
    printf('

    <a href=\'%s\'>%s</a>
    ',
    trim($link),trim($title));
    printf('%s</p>'."\n",trim($description));
    $title = '';
    $description = '';
    $link = '';
    $insideitem = false;
    }
    }

    function characterData($parser, $data) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    switch ($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");
    $fp = fopen('http://www.comune.torino.it/cgi-bin/torss/rssfeed.cgi?id=56.htm','r')
    or die('Error reading RSS data.');
    // conta è uguale al numero rss che legge
    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)));

    }

  6. #6
    Come posso eliminare il problema ?

    Visibile su www.romanilatorino.net

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 © 2024 vBulletin Solutions, Inc. All rights reserved.