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 169
    J'aime reçus:
    346
    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 166
    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:
    117
    J'aime reçus:
    0
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 169
    J'aime reçus:
    346
  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 166
    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:
    117
    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:
    117
    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:
    117
    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:
    117
    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 166
    J'aime reçus:
    7
Chargement...
Similar Threads - Problème magpierss caratères Forum Date
Probleme d'utilisation de Magpierss Développement d'un site Web ou d'une appli mobile 9 Avril 2008
Problème installation magpierss Développement d'un site Web ou d'une appli mobile 13 Décembre 2007
Probleme magpierss Développement d'un site Web ou d'une appli mobile 11 Juillet 2006
Problème avec Magpierss (flux RSS) Administration d'un site Web 1 Mai 2005
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web 8 Août 2022
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Problème de référencement Demandes d'avis et de conseils sur vos sites 8 Avril 2022
Problème adsence : Annonces ne s'affichent plus AdSense 10 Mars 2022