PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 26-11-2010 23:38:26

mdpubs
Membre
Inscription : 17-04-2010
Messages : 12

Problème d'accent dans un fichier php, contenant un RSS

Bonjour,


Dans un fichier php, j'ai intégré le rss. Le php, me permet de récupérer des infos de la base par ID et le RSS permet d'afficher le flux RSS

Tout marche impécable, sauf que si un titre contient un accent dans la balise <title> du RSS, du coup le flux ne s'affiche plus, dans l'autre balise <description>, pas de problème ? Je précise que l'extension n'est pas en .xml mais en .php (feed.php)

Voici le code :

<?php
 
include ("config.php");
 
                   $mysql_link = mysql_connect($CONF['host'], $CONF['idname'], $CONF['password']);
                   mysql_select_db($CONF['database']);
       
       if(isset($_GET['idname'])){
 $idname=mysql_real_escape_string($_GET['idname'],$mysql_link);
 $sql = "SELECT idname,title,email,departements,titre1,description,photo1 FROM {$CONF['sql_prefix']}_sites WHERE idname='".$_GET['idname']."'";
 
       
                $result = mysql_query($sql, $mysql_link) or die($sql.'<br/>'.mysql_error());
       $resultat = mysql_fetch_assoc($result);
 
       }
mysql_close();
?>
 
<rss version="2.0">
 <channel>
  <title><?php echo "$resultat[title] - $resultat[departements]"; ?></title>
  <link>http://<?php echo $resultat['departements'];?>.faboutique.fr/<?php echo $resultat['idname'];?>.php</link>
  <description>France Annuaire Boutique</description>
        <generator>www.faboutique.fr</generator>
<?php
        $resultat['title'] = htmlspecialchars($resultat['title']);
        $resultat['description'] = htmlspecialchars($resultat['description']);
?>
  <item>
   <title><?php echo $resultat[title]; ?></title>
   <link>http://<?php echo $resultat['departements'];?>.faboutique.fr/<?php echo $resultat['idname'];?>.php</link>
            <pubDate></pubDate> | <lastBuildDate></lastBuildDate>
   <description>
            <![CDATA[
            <img src="<?php echo $resultat['photo1'];?>"><br /><br />
            ]]>
            <?php echo $resultat['description']; ?>
            </description>
  </item>
 </channel>
</rss>

Qu'est-ce que je peux faire pour que les accents soient pris en compte ??

Merci de votre aide.
William

Hors ligne

#2 27-11-2010 09:14:27

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Problème d'accent dans un fichier php, contenant un RSS

Cela dépend de la configuration de ton serveur et de ta base de donnée, il est en iso ou bien en utf8 ?
En fonction de cette donnée tu donnes à ta page la même information ou bien tu utilises les fonctions php ut8_decode() ou utf8_encode().

Dernière modification par xTG (27-11-2010 09:15:01)

Hors ligne

#3 27-11-2010 12:10:49

mdpubs
Membre
Inscription : 17-04-2010
Messages : 12

Re : Problème d'accent dans un fichier php, contenant un RSS

Bonjour xTG et merci de ta réponse smile

En fait tu mets le doigt sur le bon problème, sauf que je ne sais pas comment intégrer le CHARSET dans ce fichier.

Je ne peux pas mettre ça :
<?xml version="1.0" encoding="UTF-8"?>

car je suis dans un fichier PHP. Du coup, je ne sais absolument pas comment intégrer ce CHARSET dans mon fichier en PHP contenant la commande RSS ?

Si tu as une idée en me montrant comment je peux intégrer ça dans mon fichier, ce serait super smile

A+
William

Hors ligne

#4 27-11-2010 12:36:20

mdpubs
Membre
Inscription : 17-04-2010
Messages : 12

Re : Problème d'accent dans un fichier php, contenant un RSS

Yeeeeeeeeeeees ! J'ai trouvé yikes)

Voilà, il faut ajouter :

<?php

include ("config.php");

header('Content-Type: application/xml');
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";

Si cela peut servir à d'autres.... smile

Et merci à toi xTG yikes)

A+ les amis
William

Hors ligne

#5 27-11-2010 12:42:36

mdpubs
Membre
Inscription : 17-04-2010
Messages : 12

Re : Problème d'accent dans un fichier php, contenant un RSS

Pendant que j'y suis, peut-être quelqu'un peut-il me dire, toujours sur le même fichier feed.php en exemple ci-dessus, que placer entres ses balises RSS, sachant qu'on est dans un fichier en PHP et non en XML... :

<pubDate></pubDate> et <lastBuildDate></lastBuildDate>

pour :
1ère balise, afficher la date <pubDate>
2ème balise, afficher la date de la dernière modification <lastBuildDate>

Si vous avez des idées...

Merci
William

Dernière modification par mdpubs (27-11-2010 12:44:11)

Hors ligne

#6 27-11-2010 13:57:12

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Problème d'accent dans un fichier php, contenant un RSS

PHP ou XML ne change rien.
Le header que tu as défini indique au navigateur un fichier xml, donc point barre. wink
Donc tu raisonnes comme si tu faisais ton fichier XML à la main, mais en utilisant des fonctions de traitement et d'affichage en PHP.

Sinon quant à quoi mettre à l'intérieur ? Beh cela dépend de ce que tu récupères dans ta bdd...
A priori tu n'as rien qui parle de date dans ton select.

Hors ligne

Pied de page des forums