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 119
    J'aime reçus:
    317
    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 119
    J'aime reçus:
    317
  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 résolution typo logiciels Le café de WebRankInfo Dimanche à 09:16
Problème de pages non référencées Problèmes de référencement spécifiques à vos sites 20 Février 2021
WordPress Problème de balises "Google Analytics" Google Analytics 18 Février 2021
Problème achats indirects Amazon Monétisation d'un site web 18 Février 2021
Problème changement hebergeur Administration d'un site Web 15 Février 2021
Problème page d'accueil dupliquée avec /index.html Débuter en référencement 10 Février 2021
Problème de fonctions synchrone/asynchrone Développement d'un site Web ou d'une appli mobile 24 Janvier 2021
URL canonique et problème entre / et /index.php Débuter en référencement 20 Janvier 2021
Problème avec Yoast SEO Débuter en référencement 13 Janvier 2021
Problèmes de trafic incorrect Annonces Limités AdSense 2 Janvier 2021