> Tous les forumsForum des Webmasters

 Problème affichage fil RSSSujet résolu
Statut du sujet : RESOLU Imprimer
 Goretex
  Posté le 20/03/2007 @ 18:07  
 Petit astucien

801 Messages

Salut,

Je souhaite intégrer sur mon site le flux rss d'un autre site.

J'utilise une include pour l'afficher, et voici le script (trouver sur ce forum) pour récupérer le flux :

[code]

<?
/*----------------------------------------
Options /// MODIFIER ///
----------------------------------------*/

$max_news = 10; // Nombre de news
$adresse_flux = "http://www.ffgolf.org/rss.aspx";
?>

<?

/*----------------------------------------
Lire le flux rss /// NE PAS MODIFIER ///
----------------------------------------*/
function lit_xml($fichier,$item,$champs) {
// on lit le fichier
if($chaine = @implode("",@file($fichier))) {
// on explode sur <item>
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item>
for($i=1;$i<sizeof($tmp)-1;$i+=2)
// on lit les champs demandés <champ>
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
// et on retourne le tableau
return $tmp3;
}
}
?>


<?php
$xml = lit_xml($adresse_flux,"item",array("title","link","pubDate"));
// et on affiche...
$i=0;
foreach($xml as $row) {
if ($i >= $max_news)
break;

$date = date("d/m",strtotime($row[2]));
$class = ($date != date ("d/m")) ? "date" : "date_t";
echo "<br />"
."<span class=\"".$class."\">[".$date."]</span> "
."<a target=\"_blank\" class=\"class4\" href='".$row[1]."'>".$row[0]."</a>"
;
$i++;
}
?>
[/code]

Résultat, tout s'affiche comme je le souhaite sauf les caractères spéciaux... voici ce que ça donne :

Bon, en prenant deux minutes, on arrive à déchiffrer, mais dans l'idéal, j'aimerai que soit normal !

Je me suis dit que peut être, c'était de la "faute" du webmaster du site proposant ce flux qui aurait eu la fainéantise d'écrire ces caractères correctement (des [code]"&egrave;"[/code] pour les "è"...etc).

Ou alors, ça vient peut être du "DOCTYPE" de leur site et du mien...

Bref, je sais pas... Donc, avez - vous une idée du pourquoi du comment ??? Ou peut - être même une solution ???

Mille merci.

 Afficher le profil de GoretexEnvoyer un message privé à Goretex
 
 
Publicité
 Malcolm  Posté le 20/03/2007 à 19:23  
  Astucien


7299 Messages
le RSS est en UTF 8 et ton site est en iso 8859-1 ?
Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 Goretex  Posté le 21/03/2007 à 10:47  
Petit astucien

801 Messages

Salut,

Malcolm a écrit :

le RSS est en UTF 8 et ton site est en iso 8859-1 ?

Merci Malcolm pour ta réponse (qui est une question...).

Et oui...c'est exactement ceci.

Alors j'imagine déjà la solution, c'est changer mon "charset" ?

Je veux bien... par contre cela aura-til une incidence sur l'affichage des autres pages de mon site ???
(A noter que, presque tous mes "caractères spéciaux", sont écrits en HTML)

Et sinon, ne serait t-il pas possible d'indiquer un "charset" différent de mon site juste sur un petit bout de page ???

Merci pour vos réponses.



Modifié par Goretex le 21/03/2007 10:48
Afficher le profil de GoretexEnvoyer un message privé à Goretex
 Revenir en haut de la page
 Malcolm  Posté le 21/03/2007 à 11:48  
  Astucien


7299 Messages
bin tu le fais en page dédiée ... Laquelle aura le charset correspondant (et cela n'ira pas modifier le reste de ton site)
Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 Goretex  Posté le 21/03/2007 à 12:13  
Petit astucien

801 Messages

Salut,

Malcolm a écrit :

bin tu le fais en page dédiée ... Laquelle aura le charset correspondant (et cela n'ira pas modifier le reste de ton site)

Le truc c'est que je tiens vraiment à ce que cela soit "inclus" dans ma page d'accueil...


J'ai essayé de changer le charset de mon site en UTF-8, c'est cool, le flux rss s'affiche correctement, par contre certains caractères de mon site sont remplacés par des carrés (normal, certains caractères ne sont pas écrits en html) et pour le coup, cela ne serait pas trop long pour tout revoir. Donc au pire, je le change définitivement...


Mais du coup, il vaut mieux utiliser ISO ??? ou UTF ???


De plus, imaginons que je souhaite récupérer plusieurs flux et tous les affichés sur la même page...avec bien sûr un charset différent à chaque fois... Il n'y aurait pas de solutions pour que tous soit affichés correctement ???



Modifié par Goretex le 21/03/2007 12:13
Afficher le profil de GoretexEnvoyer un message privé à Goretex
 Revenir en haut de la page
 Malcolm  Posté le 21/03/2007 à 13:44  
  Astucien


7299 Messages

soit c'est le flux XML que tu passes en ISO, soit ta page en UTF 8. Si ce n'est *que*pour une page, j'opterais pour cette dernière solution.

entre l'iso et l'utf 8, je ne saurais pas te dire, il n'y a pas de règle absolue. l'UTF8 est censé résoudre les problèmes liés aux spécificités des langues (caractères accentués, n tilde, le truc "beta" des allemands, etc.) en proposant un format universel de jeu de caractères. Mais windows est en 1252, et la plupart des programmes en latin-1 (8859-1) ou en latin-9 (8859-15), ce dernier ayant comme différences avec son prédécesseur l'insertion de sigles tels que l'euro ou encore de caractères comme l'oe lié par exemple dans coeur/oesophage.

Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 Goretex  Posté le 21/03/2007 à 14:29  
Petit astucien

801 Messages

Salut,

Malcolm a écrit :

soit c'est le flux XML que tu passes en ISO, soit ta page en UTF 8. Si ce n'est *que*pour une page, j'opterais pour cette dernière solution.(...)

Je ne peux ni l'un, ni l'autre !

Déjà, le script qui récupère le flux dans mon post original, est appelé par une include dans ma page d'accueil, donc même si je rajoute ceci :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
***script pour récupérer flux****
</body>
</html>

dans la page "php" de mon script, cela ne change rien et en plus ma page d'accueil générée en html par le serveur, ressemble à ça :

<html><head></head><body><html><head></head><body></body></html></body></html> !!!

Et puis, ce flux appartient à un autre site, donc ça m'étonnerait qu'il accepte de changer son charset juste pour moi !!!



Ensuite, je ne peux pas non plus (enfin si je pourrai, mais c'est embêtant...), changer le charset juste pour ma page d'accueil, car pareil, le "doctype", le "charset", les balises "meta"... se trouve dans un fichier "top" que j'appelle par "includes" dans toutes mes pages...


En conclusion, sauf si je n'ai pas bien compris un truc, la seule solution qu'il me reste c'est d'adapter mon site au flux et tout mettre en "UTF-8" ???

Afficher le profil de GoretexEnvoyer un message privé à Goretex
 Revenir en haut de la page
 Malcolm  Posté le 21/03/2007 à 15:50  
  Astucien


7299 Messages

non, je voulais dire de récupérer le contenu du flux, et celui-là de le convertir en ISO 8859-1. Mais je ne sais pas de quelle nature il est, et cela sous entend un traitement spécifique (pour ne pas dénaturer les liens ...)

Sinon pour ton template de site, si tu le génères en PHP, tu peux bien faire une condition pour une unique page dans le charset ?

Afficher le profil de Malcolm Voir la configuration de MalcolmEnvoyer un message privé à Malcolm
  Revenir en haut de la page
 Goretex  Posté le 21/03/2007 à 16:06  
Petit astucien

801 Messages

Salut,

Malcolm a écrit :

non, je voulais dire de récupérer le contenu du flux, et celui-là de le convertir en ISO 8859-1. Mais je ne sais pas de quelle nature il est, et cela sous entend un traitement spécifique (pour ne pas dénaturer les liens ...)

Sinon pour ton template de site, si tu le génères en PHP, tu peux bien faire une condition pour une unique page dans le charset ?

En fait, et par fainéantise , j'ai changé le charset de mon site en UTF-8 (de toutes façons, c'est quasiment pareil, non ???).

Cela m'a demandé que quelques minutes, avec ce bon vieux Dreamweaver, pour corriger les caractères qui ne s'affichaient pas correctement.

En plus, je ne suis pas capable d'écrire des conditions en php, je les comprends, mais les créer, j'ai pas le niveau ! J'ai donc choisi la solution la plus facile...

Moult merci Malcolm de ton aide toujours précieuse.

@ + Jcoutsit

---------------SUJET RESOLU---------------------

Afficher le profil de GoretexEnvoyer un message privé à Goretex
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page