IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Flux rss: affichage accent serveur local et serveur distant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut Flux rss: affichage accent serveur local et serveur distant
    Bonjour j'ai mis en place un flux rss pour mon site.
    En local c'est nikel mais quand j'envoi les fichiers sur mon serveur d'hébergement , il y a un soucis dans l'affichage. Le texte est tronqué à partir du premier caractère accentué.

    Voici ce que donne le fichier xml sur le serveur:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <rss version="2.0">
    <channel>
    <title>Sciences et progres</title>
    <link>http://sciences-et-progres.net</link>
    <description>Toute les informations</description>
    <managingEditor>webmaster@sciences-et-progres.net</managingEditor>
    <copyright>Copyright(c) 2000-2013 sciences-et-progres.net</copyright>
    <generator>sciences-et-progres.net</generator>
    <language>fr</language>
     
    <item id='44'><title>Cote d’Ivoire : Total découvre un nouveau gisement de pétrole</title>
     
    <link>http://sciences-et-progres.net/sciences-et-progres.net/article-44-nouveau-gigement-petrol-cote-d-ivoire.html</link>
     
    <description>Le g

    Voici ce que donne le fichier xml sur le local:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <rss version="2.0">
    <channel>
    <title>Sciences et progres</title>
    <link>http://127.0.0.1</link>
    <description>Toute les informations</description>
    <managingEditor>webmaster@sciences-et-progres.net</managingEditor>
    <copyright>Copyright(c) 2000-2013 sciences-et-progres.net</copyright>
    <generator>sciences-et-progres.net</generator>
    <language>fr</language>
     
    <item id='49'><title>Cote d’Ivoire : Total découvre un nouveau gisement de pétrole</title>
    <link>http://127.0.0.1/sciences-et-progres.net/article-49-total-decouvre-nouveau-gisement-de-petrole.html</link>
    <description>Le géant Français a découvert un gisement de pétrole lors de son premier forage exploratoire effectué au large de la Côte d'Ivoire, l’annonce a été faite ce jeudi dans un communiqué. Le géant pétrolier Français Total a annoncé, ce jeudi, avoir découvert un gisement de pétrole lors de son premier forage exploratoire effectué au large des...</description>
    </item>
    </channel>
    </rss>



    Le code Php qui génère le fichier xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    //Début flux rss
    	 $rss ="<rss version=\"2.0\">"."\n";
    	 $rss .="<channel>"."\n";
    	 $rss .="<title>Sciences et progres</title>"."\n";
    	 $rss .="<link>$url</link>"."\n";
    	 $rss .="<description>Toute les informations</description>"."\n";
    	 $rss .="<managingEditor>webmaster@sciences-et-progres.net</managingEditor>"."\n";
    	 $rss .="<copyright>Copyright(c) 2000-2013 sciences-et-progres.net</copyright>"."\n";
    	 $rss .="<generator>sciences-et-progres.net</generator>"."\n";
    	 $rss .="<language>fr</language>"."\n\n";
     
    	  while($data = $sql->fetch(PDO::FETCH_OBJ)) {
    		 $rss .="<item id='".$data->idart."'>";
    		 $rss .="<title>".html_entity_decode(ucfirst($data->titreart))."</title>"."\n\n";
    		 $rss .="<link>".$url."/sciences-et-progres.net/"."article-".html_entity_decode(stripslashes($data->idart))."-".html_entity_decode(stripslashes($data->alias)).".html</link>"."\n\n";
    		 $rss .="<description>".troncate(html_entity_decode($data->article))."</description>"."\n\n";
    		 $rss .="</item>";
    	  }
    	$rss .="</channel>\n</rss>";
     
    		//Ouverture del page xml
    		$fp = fopen("rss.xml", 'w+'); //ouverture en écriture
    		fputs($fp, $rss);
    		fclose($fp);
     
     
    		// On envoie les headers XML / no cache
    		header('Content-type: application/xml; charset=utf-8');
    		header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
    		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    		header('Pragma: public');
     
    		echo $rss;
     
    		// Fermeture de la connexion à la base de données
    		unset($sql)
    ;


    Comment faire pour afficher correctement le texte sur le serveur d'hébergement?

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Par défaut
    Le code complet pour ceux que ça interesseraient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    //Fonction de réécriture de l'url
    function urlOptimiser($chaine){
     
    $chaine = strtolower($chaine); //Transforme la chaine en miniscule
     
    //Remplace toutes les lettres accentuées en sans accent
    $accents = Array("/é/", "/è/", "/ê/","/ë/", "/ç/", "/à/", "/â/","/á/","/ä/","/ã/","/å/","/î/", "/ï/", "/í/", "/ì/", "/ù/", "/ô/", "/ò/", "/ó/", "/ö/");
    $sans = Array("e", "e", "e", "e", "c", "a", "a","a", "a","a", "a", "i", "i", "i", "i","u", "o", "o", "o", "o");
    $chaine = preg_replace($accents, $sans,$chaine);  
    $chaine = preg_replace('#[^A-Za-z0-9]#','-',$chaine);
     
    // Remplace les tirets multiples par un tiret unique
    //$chaine = preg_replace( '-+', '-', $chaine ); 
    //$chaine = rtrim( $chaine, '-' ); // Supprime le dernier caractère si c'est un tiret
     
    	while(strpos($chaine, '--') != false){
    			$chaine = str_replace('--','-', $chaine);
    			return $chaine;
    		}
    	}
     
    //Début flux rss
    	 $rss ="<rss version=\"2.0\">"."\n";
    	 $rss .="<channel>"."\n";
    	 $rss .="<title>Sciences et progres</title>"."\n";
    	 $rss .="<link>$url</link>"."\n";
    	 $rss .="<description>Toute les informations</description>"."\n";
    	 $rss .="<managingEditor>webmaster@sciences-et-progres.net</managingEditor>"."\n";
    	 $rss .="<copyright>Copyright(c) 2000-2013 sciences-et-progres.net</copyright>"."\n";
    	 $rss .="<generator>sciences-et-progres.net</generator>"."\n";
    	 $rss .="<language>fr</language>"."\n\n";
     
      while($data = $sql->fetch(PDO::FETCH_OBJ)) {
    			 $rss .="<item id='".$data->idart."'>";
    			 $rss .="<title>".html_entity_decode(ucfirst($data->titreart))."</title>"."\n\n";
    			 $rss .="<link>".$url."/sciences-et-progres.net/"."article-".html_entity_decode(stripslashes($data->idart))."-".html_entity_decode(stripslashes($data->alias)).".html</link>"."\n\n";
    			 $rss .="<description>".troncate(html_entity_decode($data->article))."</description>"."\n\n";
    			 $rss .="</item>";
    		  }
     
    $rss .="</channel>\n</rss>";
     
    		//Ouverture del page xml
    		$fp = fopen("rss.xml", 'w+'); //ouverture en écriture
    		fputs($fp, $rss);
    		fclose($fp);
     
     
    		// On envoie les headers XML / no cache
    		header('Content-type: application/xml; charset=utf-8');
    		header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
    		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    		header('Pragma: public');
     
    		echo $rss;
     
    		// Fermeture de la connexion à la base de données
    		unset($sql);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence affichage entre test local et serveur sur GG Chrome
    Par saluts92 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/04/2015, 08h35
  2. Action sur serveur local depuis server distant
    Par Camomille dans le forum Langage
    Réponses: 1
    Dernier message: 14/03/2011, 02h22
  3. Problème d'affichage entre swf local et serveur
    Par djhanihill dans le forum Flash
    Réponses: 1
    Dernier message: 24/01/2008, 19h15
  4. [Flux RSS] Affichage des accents
    Par shako95 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 13/03/2007, 15h48
  5. [Déploiement] local sur serveur -> local sur ma machine
    Par annalady dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/09/2006, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo