Encodage RSS
Résolu
louis1984
Messages postés
341
Date d'inscription
Statut
Membre
Dernière intervention
-
bg62 Messages postés 23735 Date d'inscription Statut Modérateur Dernière intervention -
bg62 Messages postés 23735 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un petit soucis avec mon flux rss, j'obtiens du texte sous cette forme:
" la baisse de l'euro n'ont été prises. La monnaie unique européenne pâtit également des craintes "
j'utilise ca sur ma page:
<!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>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Comment resoudre le probleme?
J'ai un petit soucis avec mon flux rss, j'obtiens du texte sous cette forme:
" la baisse de l'euro n'ont été prises. La monnaie unique européenne pâtit également des craintes "
j'utilise ca sur ma page:
<!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>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Comment resoudre le probleme?
A voir également:
- Encodage RSS
- Encodage ascii - Guide
- Tiny tiny rss - Télécharger - Flux RSS
- Rss owl - Télécharger - Flux RSS
- Rss bandit - Télécharger - Web & Internet
- Rss to mp3 - Guide
22 réponses
Un flux RSS (ou Atom, ...) n'est rien d'autre qu'un fichier XML avec quelques consignes (chaque article est représenté par le nœud "item", le nœud "title" contient le titre de l'article, ...).
http://www.sebsauvage.net/comprendre/rss/creer.html
http://www.sebsauvage.net/comprendre/rss/creer.html
un flux rss ne se code pas de cette manière !!! (il y a des normes à respecter !)
là tu as en train de faire une page ... mal codée en plus !
là tu as en train de faire une page ... mal codée en plus !
Pouvez-vous me dire ce qui va pas? Voici le code que j'utilise:
<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content">
<?php
$url = 'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml';
$dom = new DOMDocument();
$dom->load($url);
$i = 1;
foreach($dom->getElementsByTagName('item') as $item) {
if($i <= 4) {
echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n";
$i++;
}
}
?>
</div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content">
<?php
$url = 'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml';
$dom = new DOMDocument();
$dom->load($url);
$i = 1;
foreach($dom->getElementsByTagName('item') as $item) {
if($i <= 4) {
echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n";
$i++;
}
}
?>
</div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Comme l'a expliqué avion : un fichier RSS est du xml.
Ton code est du html, du php et du js.
Donc, rien ne va...
Ton code est du html, du php et du js.
Donc, rien ne va...
je veux pas faire un fil RSS, je veux afficher des articles du journal "Le Figaro" sur mon site grace a leur flux RSS...
Je viens de trouver la solution a mon probleme, il fallait remplacer
<!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>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
par
<!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>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
Par contre ca m'affiche uniquement le titre et la description de l'article.. comment faire pour que l'internaute puisse cliquer sur l'article et ca le renvoie directement sur la page de "Le Figaro" ou il peut lire l'article en entier?
Je viens de trouver la solution a mon probleme, il fallait remplacer
<!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>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
par
<!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>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
Par contre ca m'affiche uniquement le titre et la description de l'article.. comment faire pour que l'internaute puisse cliquer sur l'article et ca le renvoie directement sur la page de "Le Figaro" ou il peut lire l'article en entier?
En fait je viens de voir que ca resoud le probleme qu'a moitier.. mes articles du Figaro s'affichent bien mais j'ai une autre partie en dessous ou il y a des petits carres a la place des "à"
Une idee?
Une idee?
Changer la déclaration d'encodage n'est pas suffisant. Il faut aussi régler l'éditeur html.
Si tu utilises NotePad++, il faut aller dans le menu format pour configurer cela.
Si tu utilises NotePad++, il faut aller dans le menu format pour configurer cela.
ok mais je dois faire quoi? le mettre en UTF-8?? car ca resoudra uniquement le probleme des articles du Figaro que j'integre grace a RSS et pas celui de la partie en dessous avec les petits carres a la place des "à"... et si je mets en ISO-8859-1 ca resoudra le probleme des petits carres a la place des "à" mais pas celui des articles du Figaro...
Si tu codes toutes tes pages en utf-8 (en ayant bien réglé dream), tu n'auras plus aucun problèmes justement !
Sinon, rajoute dans le script php qui récupère le flux xml la fonction utf8_decode http://www.manuelphp.com/php/function.utf8-decode.php
Sinon, rajoute dans le script php qui récupère le flux xml la fonction utf8_decode http://www.manuelphp.com/php/function.utf8-decode.php
Je viens de regarder et j'ai ca dans la partie avec les petits carres:
<?php
$source = file_get_contents('http://www.monsite.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS');
$xml = new SimpleXMLElement($source);
$i = 0;
foreach($xml->channel->item as $new) {
if($i < 5) {
preg_match_all('#Auteur: (.+)<br />#isU',utf8_decode($new->description),$auteur);
$auteur = $auteur[1][0];
preg_match_all('#Écrit le: (.+)<br />#isU',utf8_decode($new->description),$date);
$date = strtotime($date[1][0]);
if(strlen($new->title) > 20)
$titre = substr($new->title, 0, 20).'...';
else
$titre = $new->title;
echo date('d/m/y à H:i',$date).' : <a href="'.$new->link.'">'.utf8_decode($titre).'</a> par '.utf8_decode($auteur).'<br />';
}
$i++;
}
?>
J'ai deja utf8_decode donc si je mets ma page en UTF-8 comment modifier le code ci-dessus pour qu'il n'y ait plus les petits carres?
<?php
$source = file_get_contents('http://www.monsite.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS');
$xml = new SimpleXMLElement($source);
$i = 0;
foreach($xml->channel->item as $new) {
if($i < 5) {
preg_match_all('#Auteur: (.+)<br />#isU',utf8_decode($new->description),$auteur);
$auteur = $auteur[1][0];
preg_match_all('#Écrit le: (.+)<br />#isU',utf8_decode($new->description),$date);
$date = strtotime($date[1][0]);
if(strlen($new->title) > 20)
$titre = substr($new->title, 0, 20).'...';
else
$titre = $new->title;
echo date('d/m/y à H:i',$date).' : <a href="'.$new->link.'">'.utf8_decode($titre).'</a> par '.utf8_decode($auteur).'<br />';
}
$i++;
}
?>
J'ai deja utf8_decode donc si je mets ma page en UTF-8 comment modifier le code ci-dessus pour qu'il n'y ait plus les petits carres?
Bouhahahahaha !
Le fichier RSS du fig est en iso... pas en utf-8. Première ligne du fichier :
Donc, c'est le contraire : faut virer les utf8_decode...
Le fichier RSS du fig est en iso... pas en utf-8. Première ligne du fichier :
<?xml version="1.0" encoding="iso-8859-1"?>
Donc, c'est le contraire : faut virer les utf8_decode...
1. Je comprends rien... c'est quoi cette histoire de <?xml version="1.0" encoding="iso-8859-1"?> ca sort d'ou? ou tu vois ca, j'ai pas ce truc dans mon code?
2. J'ai supprimer les decode et ca marche toujours pas.. ci-dessous mon code.. j'ai toujours les carres.
<?php
$source = file_get_contents('http://www.monsite.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS');
$xml = new SimpleXMLElement($source);
$i = 0;
foreach($xml->channel->item as $new) {
if($i < 5) {
preg_match_all('#Auteur: (.+)<br />#isU',($new->description),$auteur);
$auteur = $auteur[1][0];
preg_match_all('#Écrit le: (.+)<br />#isU',($new->description),$date);
$date = strtotime($date[1][0]);
if(strlen($new->title) > 20)
$titre = substr($new->title, 0, 20).'...';
else
$titre = $new->title;
echo date('d/m/y à H:i',$date).' : <a href="'.$new->link.'">'.($titre).'</a> par '.($auteur).'<br />';
}
$i++;
}
?>
2. J'ai supprimer les decode et ca marche toujours pas.. ci-dessous mon code.. j'ai toujours les carres.
<?php
$source = file_get_contents('http://www.monsite.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS');
$xml = new SimpleXMLElement($source);
$i = 0;
foreach($xml->channel->item as $new) {
if($i < 5) {
preg_match_all('#Auteur: (.+)<br />#isU',($new->description),$auteur);
$auteur = $auteur[1][0];
preg_match_all('#Écrit le: (.+)<br />#isU',($new->description),$date);
$date = strtotime($date[1][0]);
if(strlen($new->title) > 20)
$titre = substr($new->title, 0, 20).'...';
else
$titre = $new->title;
echo date('d/m/y à H:i',$date).' : <a href="'.$new->link.'">'.($titre).'</a> par '.($auteur).'<br />';
}
$i++;
}
?>
1. 1. Je comprends rien... c'est quoi cette histoire de <?xml version="1.0" encoding="iso-8859-1"?> ca sort d'ou? ou tu vois ca, j'ai pas ce truc dans mon code?
C'est la première ligne du fichier xml du fig. Voir le code source https://www.lefigaro.fr/rss/figaro_tauxetdevises.xml Le fichier RSS du fig est encodé en iso.
2. Bon, là c'est moi qui ne comprend plus, ce n'est pas le fig ça : https://www.pagesjaunes.fr/?action=new&show=10&fid=1&type=RSS
C'est quoi l'encodage de cette page ?
C'est la première ligne du fichier xml du fig. Voir le code source https://www.lefigaro.fr/rss/figaro_tauxetdevises.xml Le fichier RSS du fig est encodé en iso.
2. Bon, là c'est moi qui ne comprend plus, ce n'est pas le fig ça : https://www.pagesjaunes.fr/?action=new&show=10&fid=1&type=RSS
C'est quoi l'encodage de cette page ?
Tu as été voir sur le lien que je t'ai donné ?
Il faut utiliser PHP pour générer ce XML.
Tu peux le faire à la façon simple avec des echo ou la meilleure avec DOM.
Il faut utiliser PHP pour générer ce XML.
Tu peux le faire à la façon simple avec des echo ou la meilleure avec DOM.
tiens regarde ici :
http://www.unesourisetmoi.info/rss1.xml
fait avec l'aide de sebsauvage, + un fichier .htaccess pour la compatibilité
bon ... mais à faire à la main, du coup je modifs ne sont pas trop féquentes ...
>>> voir le code source !
http://www.unesourisetmoi.info/rss1.xml
fait avec l'aide de sebsauvage, + un fichier .htaccess pour la compatibilité
bon ... mais à faire à la main, du coup je modifs ne sont pas trop féquentes ...
>>> voir le code source !
Ici comme il utilise du PHP il n'y a pas besoin du .htaccess pour préciser le content-type :
header('Content-type: text/xml; charset=iso-8859-1');
contenu du .htaccess (pour le flux uniquement):
sinon il faut adapter en php pour la génération, mais atom ou ... demandent quand même ceci :
etc ...
<Files rss2.xml> AddCharset ISO-8859-1 .xml AddType text/xml .xml </Files> <Files traduitrss.xslt> AddCharset ISO-8859-1 .xslt AddType application/xml .xslt </Files>
sinon il faut adapter en php pour la génération, mais atom ou ... demandent quand même ceci :
<?xml version="1.0" encoding="ISO-8859-1" ?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
etc ...