Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    inserire RSS con php ci sono riuscito ma...

    ho trovato questo script per inserire file XML con php

    codice:
    <ul><?php $insideitem = false;
    $tag = "";
    $title = "";
    $description = "";
    $link = "";
    
    function startElement($parser, $name, $attrs) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    $tag = $name;
    } elseif (strtolower($name) == "item") {
    $insideitem = true;
    }
    }
    
    function endElement($parser, $name) {
    global $insideitem, $tag, $title, $description, $link;
    if (strtolower($name) == "item") {
    printf("[*]%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s",trim($description));
    $title = "";
    $description = "";
    $link = "";
    $insideitem = false;
    }
    }
    
    function characterData($parser, $data) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    switch (strtolower($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");
    // Carico indirizzo feed rss delle news di WebMasterPoint.org
    $fp = fopen("http://www.miosito.it/rss/news.xml","r")
    
    or die("Error reading RSS data.");
    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)));
    fclose($fp);
    xml_parser_free($xml_parser);
    
    ?>[/list]
    e lo script funziona a perfezione

    stampa tutti gli item uno dietro l'altro cosi:

    • item1
    • item2
    • item3


    il codice che stampa è questo quindi:

    codice:
    printf("[*]%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s",trim($description));
    ora non riesco a capire come modificare il codice per stampare degli item interni..

    ovvero un item è fatto cosi:

    <item>
    <title>titolo1</title>
    <link>http://www.sito.it</link>
    </item>
    <item>
    <title>titolo2</title>
    <link>http://www.sito.it</link>
    </item>

    e tutto va bene.. ma se io ho degli item cosi non va bene:

    <item>
    <title>titolo principale1</title>

    <item>
    <title>titoloa</title>
    <link>http://www.sito.it</link>
    </item>

    <item>
    <title>titolob</title>
    <link>http://www.sito.it</link>
    </item>

    </item>

    <item>
    <title>titolo2</title>
    <link>http://www.sito.it</link>
    </item>

  2. #2

    Domanda

    Gli item annidati sono conformi alle specifiche RSS? Io non credo (anche se potrei sempre sbagliarmi)

  3. #3

    Re: Domanda

    Originariamente inviato da Petro_suse91
    Gli item annidati sono conformi alle specifiche RSS? Io non credo (anche se potrei sempre sbagliarmi)
    non credo nemmeno io.. ma non è un problema perchè non devo richiamare un rss esterno ma uno mio.. e posso anche non formattarlo come rss ma come semplice xml e quindi annidare gli item in quel modo

    il problema però è come richiamarli con quel codice php..

    insomma in modo da fare una specie di struttura ad albero dove la radice è l'item più alto e via all'interno

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.