• Super User

    AIUTO!! Carattere "virgolette" in feed

    sapreste aiutarmi per risolvere un problema con la lettura del feed in wordpress??

    Ecco lo script che legge i feed di wordpress ma nei TITOLI al posto del carattere " cioè le virgolette, stampa a video il ? punto interrogativo, potete copiarvi il codice e metterlo in locale:

    **<?php
    $rssurl="http://www.angelweb.it/news/rss/";
    class xml {
    var $parser;
    function parse($xmlstring){
    $this->parser = xml_parser_create();
    xml_set_object($this->parser, $this);
    xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
    xml_set_element_handler($this->parser, "tag_open", "tag_close");
    xml_set_character_data_handler($this->parser, "cdata");

    $this->node_stack = array();
    $this->tag_open(null, "root", array());

    xml_parse($this->parser, $xmlstring);
    xml_parser_free($this->parser);

    $rnode = array_pop($this->node_stack);
    return($rnode);
    }

    function tag_open($parser, $tag, $attributes){
    // Creazione di un nuovo nodo
    $node = array();
    $node["_NAME"] = $tag;
    foreach ($attributes as $key => $value) {
    $node[$key] = $value;
    }
    $node["_DATA"] = "";
    $node["_ELEMENTS"] = array();

    array_push($this->node_stack, $node);
    }

    function cdata($parser, $cdata){
    $lastnode = count($this->node_stack);
    $this->node_stack[$lastnode-1]["_DATA"] .= $cdata;
    }

    function tag_close($parser, $tag){
    $node = array_pop($this->node_stack);
    $node["_DATA"] = trim($node["_DATA"]);
    $lastnode = count($this->node_stack);
    array_push($this->node_stack[$lastnode-1]["_ELEMENTS"], $node);
    }
    }

    //inizio del codice

    $fp = fopen($rssurl, "r");
    while (!feof ($fp)) $data .= fgets($fp, 4096);
    fclose ($fp);
    $initPos = strpos($data, "<channel>");

    $xml_parser = new xml();
    $data = substr($data, $initPos);
    $root_node = $xml_parser->parse($data);
    $channel = array_shift($root_node["_ELEMENTS"]);

    foreach ($channel["_ELEMENTS"] as $item){
    if($item[_NAME]=="title") $base_name=stripslashes($item[_DATA]);
    if($item[_NAME]=="link") $base_url=stripslashes($item[_DATA]);
    if($item[_NAME]=="description") $base_desc=stripslashes($item[_DATA]);
    }

    $i=0;
    foreach ($channel["_ELEMENTS"] as $item){
    if($item[_NAME]=="item") {
    foreach ($item["_ELEMENTS"] as $tag){
    if($tag["_NAME"]=="title") $news_title=stripslashes($tag[_DATA]);
    if($tag["_NAME"]=="link") $news_url=stripslashes($tag[_DATA]);
    if($tag["_NAME"]=="pubDate") $news_pubDate=stripslashes($tag[_DATA]);
    if($tag["_NAME"]=="description") $news_desc=stripslashes($tag[_DATA]);
    if($tag["_NAME"]=="category") $news_cat=stripslashes($tag[_DATA]);
    $news_cat_link=strtolower($news_cat);
    }
    //codice di impaginazione delle news
    $news* = "<div class="feed"><font size="1">$news_pubDate<br><b><a href="$news_url" target="_top">$news_title</a></b>";
    $i++;
    }
    }
    $NumTotNews=$i;
    $col=0;
    echo "<table border=0 cellspacing=2 cellpadding=0 width=140>";
    echo "<tr>";
    for ($k=0;$k<$NumTotNews;$k++) {
    echo "{$news[$k]}";
    $col++;

    if ($col==1) {
    echo "</tr><tr>";
    $col=0;
    }

    }
    echo "</tr>";
    echo "</table>";

    ?>
    <?php print($base) ?>**

    Ho provato a guardare il codice del file wp-rss2.php e wp-rss.php e non cè nulla di particolare nella lettura.

    Grazie 😉


  • Super User

    Il ? è come questo? �

    Se si probabilmente è un problema di codifica del testo, controlla che sia coerente con quella del DB.


  • Super User

    @gh3 said:

    Il ? è come questo? �

    Se si probabilmente è un problema di codifica del testo, controlla che sia coerente con quella del DB.

    No, è proprio ?.

    Guarda lo puoi guardare nel footer nel mio sito www.angelweb.it e vedrai che i titoli delle NEWS (in alcuni) che hanno il carattere " virgolette, mostrano il punto interrogativo.

    Grazie


  • Super User

    boh io vedo tutti con " 😐


  • Super User

    Ragazzi davvero non sapete come risolvere questo mio problemino????
    Il fatto è che esteticamente non si può vedere!!

    Dai che ce la facciamo..


  • Super User

    Questo problema si visualizza solo sui TITLE titoli dei post e non sulla medesima descrizione.
    I caratteri àèùò si leggono bene ma i caratteri " / ' si leggono tutti con ? punto interrogativo.

    Allora proprio nessuno sa da cosa dipende in wordpress??


  • Super User

    Forse risolvi forse no prova con questo plugin
    http://anthologyoi.com/wordpress/plugins/wordpress-charecter-map.html


  • Super User

    @pierfrancesco99 said:

    Forse risolvi forse no prova con questo plugin
    http://anthologyoi.com/wordpress/plugins/wordpress-charecter-map.html

    Provato grazie, ma non è un problema di encoding ma del lettore.
    Comunque ho risolto prendendo un'altro lettore e ora funge benissimo.

    Grazie per la disponibilità.

    :ciauz: