Problème magpierss et caratères spéciaux

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par pipido, 3 Août 2011.

  1. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    Bonjour,
    j'ai utilisé la solution proposée par votre site pour intégrer un flux rss à une page de mon site.
    Tout fonctionne et je vous remercie pour vos explications, cependant les informations s'affichent avec un losange et un point d’interrogation à l'intérieur sur chaque caractère spéciaux, apparemment il faut modifier le fichier feedparse.php mais que faut-il ajouter ?

    Voici mon code:
    Code:
    <?php
    require_once("magpierss/rss_fetch.inc");
    function FeedParser($url_feed, $nb_items_affiches=5) {
    $rss = fetch_rss($url_feed);
    if (is_array($rss->items))  {      
    $items = array_slice($rss->items, 0, $nb_items_affiches);
       $site_titre = $rss->channel["title"];
       $site_lien = $rss->channel["link"];
       $site_description = $rss->channel["description"];
       $logo_titre = $rss->image["title"];
       $logo_description = $rss->image["description"];
       $logo_url = $rss->image["url"];
       $logo_lien = $rss->image["link"];
       $html = "<span style=\"float:left;margin:5px 0 0 5px\"><a href=\"".$logo_lien."\"><img src=\"".$logo_url."\" border=\"0\" alt=\"".$logo_description."\" title=\"".$logo_titre."\"></a></span>\n";
       $html .= "<a href=\"".$site_lien."\" title=\"".$site_description."\" target=\"_blank\">".$site_titre."</a><br>\n";
       $html .= "<span style=\"font-size:10px\">".$site_description."</span><br clear=\"left\"><br>\n";
       foreach($items as $item) {
         $titre = $item["title"];
         $lien = $item["link"];
         $description = $item["description"];
         	 if (isset($item["enclosure"])) { 
      $photo = $item["enclosure"]; 
    } else { 
      $photo = ""; 
    }
         $date = date("d/m/y",strtotime($item["pubdate"]));
         if($photo!="")
           $html .= "<img src=\"".$photo."\" alt=\"".$titre."\" style=\"float:left;margin-right:5px\">\n";
         $html .= "<a href=\"".$lien."\" title=\"".$titre."\" target=\"_blank\">".$titre."</a><br>\n";
         $html .= "<span class=\"tiny\">".$date." - ".$description = substr("$description",0 , 47).$titre = "...";"</span><br clear=\"left\"><br>\n";
    }
     return $html;
     } 
    } 
    
    ?>
    
    Bien à vous,
    pipido ;)
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    Ton problème peut venir de plusieurs raisons, avec si peu d'indications, impossible de te guider.

    NB: Magpie est complètement outdated, plus de mise à jour depuis le 5 novembre 2005.
    Je te conseille plutôt d'utiliser SimplePie: http://simplepie.org/
     
  3. longo600
    longo600 WRInaute passionné
    Inscrit:
    24 Février 2005
    Messages:
    2 209
    J'aime reçus:
    7
    Si dans l'ente de la page afichée il y a le codage approprié (utf-8, iso ...) , les caractères spéciaux ne devraient plus poser de probleme. Ce n'est pas plutot dans ton template qu'il manque ce codage? Si il n'y a pas de template, il doit y avoir un codage qq part! regarde dans d'autres flux rss ou il se trouve.
     
  4. infiniclick
    infiniclick WRInaute discret
    Inscrit:
    28 Septembre 2007
    Messages:
    118
    J'aime reçus:
    0
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
  6. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    Merci à spout, longo600 et infiniclick!
    Je vois avec les liens que vous m'envoyez.
    je vous tiens au courant, merci pour votre aide.
    à tout à l'heure :)
     
  7. longo600
    longo600 WRInaute passionné
    Inscrit:
    24 Février 2005
    Messages:
    2 209
    J'aime reçus:
    7
    Tu devrais obtenir la génération d'un feed avec l'élément charset renseigné (ici en utf-8, ou iso-8859-1), exemple

    <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <script language="JavaScript" src="feed://__rsrc__/__rsrc__/Articles.js"></script>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="feed://__rsrc__/__rsrc__/Main.css" title="default" type="text/css" />
    </head>
     
  8. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    Bon voilà, il y a des choses qui fonctionnent et d'autres pas :$

    Qui fonctionnent :
    il y a une mise en page et les images apparaissent, cool

    Qui fonctionnent pas:
    - Les caractères spéciaux font tjs défaut
    mon site est en utf-8 et le flux rss arrive en iso-8859-1 est-il possible d'intégrer le iso dans le code php du fichier qui gère le flux rss?


    J'ai plusieurs erreurs sur ma page:

    1- j'ai pourtant autorisé tout ! (777) sur mon fichier simplepie.inc
    Code:
    Warning: cachenews/ is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable. in /homez.116/itineris/www/under/simplepie.inc on line 1780
    2emme alerte, dois-je déclarer ma fonction?
    Code:
    Fatal error: Call to undefined function FeedParser() in /homez.116/itineris/www/under/index.php on line 169
    A mon avis c'est pas ultra clair, mais en fonction de vos réactions, je vais affiner :)
     
  9. infiniclick
    infiniclick WRInaute discret
    Inscrit:
    28 Septembre 2007
    Messages:
    118
    J'aime reçus:
    0
    Pour ta première erreur, ce sont les droits sur le dossier cachenews qui sont incorrects.

    Pour la seconde, il te dit qu'il ne trouve pas la fonction FeedParser.
     
  10. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    et voici le code de simplepie, mon fichier php est intitulé feedparser.php (en hommage à mapierss) :)
    Code:
    <?php
    $fichier_xml='http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml';
    require 'simplepie.inc';
    $feed = new SimplePie();
    $feed->set_feed_url($fichier_xml);
    $feed->enable_order_by_date(false);
    $feed->set_cache_location('cachenews/');
    $feed->init();
        if($feed->data){
            $max=$feed->get_item_quantity(5);
            for($x=0; $x<$max; $x++) {
                $item=$feed->get_item($x);
            echo "<div style=\"width: 290px; text-align: left;
                    padding: 4px; background-color: #FFFFEE;
                    border: 1px solid #CCCCCC; margin: 6px;\">
                    <a href=\"";
            echo $item->get_permalink();
            echo "\">";
            echo utf8_decode($item->get_title());
            echo "</a><br />";
                if($enclosure=$item->get_enclosure(0)){
                       echo "<img src=\"";
                       echo $enclosure->get_link();
                       echo "\" border=\"1\" style=\"float: left;
                                 margin: 4px; margin-top: 8px;\">";
                }
            echo utf8_decode($item->get_description());
            echo "</div>";
            }
     }
    ?>
    et dans ma page index.php il y a ceci pour appeler le flux
    Code:
    <?php
    require_once("feedparser.php");
    echo FeedParser("http://www.musicinbelgium.net/pl/rss.php");
    ?>
     
  11. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    Ok, pour le dossier cachenews! De mon côté je n'avais que le dossier "cache" que j'ai renommé, et cela fonction :) merci

    pour la seconde, je nage...
    où devrait elle ce situer ?
     
  12. infiniclick
    infiniclick WRInaute discret
    Inscrit:
    28 Septembre 2007
    Messages:
    118
    J'aime reçus:
    0
    Commence par commenter la ligne et dis nous ce qu'il en est.
     
  13. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    idem >
    Code:
    Fatal error: Call to undefined function FeedParser() in /homez.116/itineris/www/under/index.php on line 172
    j'ai inséré la ligne que tu m'as proposé dans ma page index.php comme ceci
    Code:
    <?php
        //echo FeedParser("http://www.musicinbelgium.net/pl/rss.php");
    require_once("feedparser.php");
    echo FeedParser("http://www.musicinbelgium.net/pl/rss.php");
    ?>
     
  14. infiniclick
    infiniclick WRInaute discret
    Inscrit:
    28 Septembre 2007
    Messages:
    118
    J'aime reçus:
    0
    Bah non, il faut remplacer celle qui te créé une erreur :mrgreen:

     
  15. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    ha oui ! hum, déso. PLUS D'ERREUR! :D

    j'ai remarqué par la suite que la ligne de mon index.php
    Code:
    <?php
    require_once("feedparser.php");
    //echo FeedParser("http://www.musicinbelgium.net/pl/rss.php");
    ?>
    n'est pas en rapport avec la ligne de mon fichier feedpaerser.php
    Code:
    // adresse du flux qu'on souhaite intégrer.
    $fichier_xml='http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml';
    Merci Merci !
    je vous envoi ma dernière question!
     
  16. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    ma dernière question :
    Les caractères spéciaux font tjs défaut
    Mon site est en utf-8 et le flux rss arrive en iso-8859-1
    est-il possible d'intégrer l'indication de la norme iso dans le code du fichier feedparser.php ou autre part ?
    C'est pour garder la norme utf-8 sur mon site.
     
  17. infiniclick
    infiniclick WRInaute discret
    Inscrit:
    28 Septembre 2007
    Messages:
    118
    J'aime reçus:
    0
    Là malheureusement je n'ai pas de piste pour toi :?
     
  18. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    je suppose que je vais devoir mettre mon site en iso...
     
  19. pipido
    pipido Nouveau WRInaute
    Inscrit:
    3 Août 2011
    Messages:
    15
    J'aime reçus:
    0
    Je vais ouvrir un nouveau poste plus ciblé simplepie , utf-8, iso.
    En tout cas merci pour tout!!!
     
  20. longo600
    longo600 WRInaute passionné
    Inscrit:
    24 Février 2005
    Messages:
    2 209
    J'aime reçus:
    7
Chargement...
Similar Threads - Problème magpierss caratères Forum Date
Problème d'indexation des fiches produits et page parente Crawl et indexation Google, sitemaps Mardi à 10:26
Problèmes d'indexation de Google fin 2020 Crawl et indexation Google, sitemaps Mardi à 10:07
Divers problèmes de Google Crawl et indexation Google, sitemaps Dimanche à 13:35
Probleme redirection d'un sous domaine deja redirigé URL Rewriting et .htaccess 26 Novembre 2020
Problème d’analyse de mon site web sur bing webmaster Référencement Bing 26 Novembre 2020
Problème calcul d'offset UTC par getTransitions ou DateTime. Développement d'un site Web ou d'une appli mobile 21 Novembre 2020
Probleme indexation site web Crawl et indexation Google, sitemaps 16 Novembre 2020
Problème d'indexation Google (pages non indexées) Crawl et indexation Google, sitemaps 7 Novembre 2020
Search Console Problème d'indexation sur la search console Problèmes de référencement spécifiques à vos sites 3 Novembre 2020
Analytics et GTM : problème TAG Google Analytics 2 Novembre 2020