Problème d'encodage lors de l'affichage d'un flux RSS
Posté : 27 févr. 2013, 03:10
Bonjour tout le monde
Je dispose d'un portail en php avec plusieurs blocs, le tout en ISO-8859-1.
J'ai voulu ajouter un bloc dont le contenu était un flux RSS. Ne sachant pas comment m'y prendre, j'ai regardé sur le net et j'ai trouvé mon bonheur avec le code suivant
De la même façon, j'ai la phrase
--------------------------------------------------------------------
Dans ce flux RSS, la balise content contient toujours une image, puis un texte, puis un lien. Est ce qu'il est possible d'influer sur l'image pour la centrer et sur le lien pour l'ouvrir dans un nouvel onglet ou une nouvelle page ?
Merci à toutes les personnes qui participeront à ce sujet.
Je dispose d'un portail en php avec plusieurs blocs, le tout en ISO-8859-1.
J'ai voulu ajouter un bloc dont le contenu était un flux RSS. Ne sachant pas comment m'y prendre, j'ai regardé sur le net et j'ai trouvé mon bonheur avec le code suivant
<?php
setlocale(LC_ALL, 'fr_FR');
$site = "http://static.finalfantasyxiv.com/topics/topics_fr.rss";
$fp = @fopen($site,"r");
while(!feof($fp)) $raw .= @fgets($fp, 4096);
{
fclose($fp);
}
if( mb_eregi("<item>(.*)</item>", $raw, $rawitems ) )
{
$items = explode("<item>", $rawitems[0]);
for( $i = 0; $i < 5; $i++)
{
mb_eregi("<title>(.*)</title>",$items[$i+1], $title);
mb_eregi("<link>(.*)</link>",$items[$i+1], $url);
mb_eregi("<dc:date>(.*)</dc:date>",$items[$i+1], $pubDate);
mb_eregi("<content:encoded>(.*)</content:encoded>",$items[$i+1], $content);
$contenu = html_entity_decode("<a href='".$url[1]."' style='font-size : 14px;font-weight: bold;text-decoration:none;'>".$title[1]."</a><br /><span style='font-size : 12px'>" . strftime("%A %d %B à %H:%M", strtotime($pubDate[1])) . "</span><br /><br /><span style='font-size : 14px'> " . $content[1] . "</span><br /><br /><hr /><br />");
$template->assign_block_vars('rss_square', array(
'CONTENU' => $contenu)
);
}
}
?>
Le problème, c'est que j'avais des phrases de ce genre : J'ai donc remplacé le contenu de la variable $contenu par ceci :Ce programme de test vous permettra d'évaluer la capacité de votre ordinateur à faire tourner le jeu avec différents réglages de qualité graphique
$tim = utf8_decode("à");
$contenu = html_entity_decode("<a href='".$url[1]."' target='_blank' style='font-size : 14px;font-weight: bold;text-decoration:none;'>" . utf8_decode($title[1]) . "</a><br /><span style='font-size : 12px'>" . strftime("%A %d %B $tim %H:%M", strtotime($pubDate[1])) . "</span><br /><br /><span style='font-size : 14px'> " . utf8_decode($content[1]) . "</span><br /><br /><hr /><br />");Ce qui a réglé tout les problèmes d'accent... ou presque : le mot oeil apparaissait initialement comme ci Il apparait maintenant comme cela (après ma modif) :Å“il
Je pense que c'est a cause du caractère spécial utilité Œil mais je ne sais pas comment le gérer pour qu'il s'affiche correctement (j'imagine qu'il doit y avoir d'autre caractère spéciaux du même genre que je n'ai pas actuellement dans mon flux rss). Vous sauriez comment lui faire entendre raison ??il
De la même façon, j'ai la phrase
qui a été remplacé parPour plus d'informations
Sachant que j'ai plein d'apostrophe a d'autres endroits qui s'affichent parfaitement bien... J'ai donc regardé comment il m'affichait ça avant ma modif et ça donnait ça :Pour plus d?iinformations
Est ce qu'il serait possible de le faire redevenir un ' (lui et tous les prochains apostrophe qu'ils écriront de cette façon).Pour plus d’informations
--------------------------------------------------------------------
Dans ce flux RSS, la balise content contient toujours une image, puis un texte, puis un lien. Est ce qu'il est possible d'influer sur l'image pour la centrer et sur le lien pour l'ouvrir dans un nouvel onglet ou une nouvelle page ?
Merci à toutes les personnes qui participeront à ce sujet.