Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2008, 19h13   #1
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
Par défaut Décodage de caractères à partir d'un flux RSS

Bonsoir,

Voilà, pour être concret, je récupère le flux suivant : http://www.libelabo.fr/category/video/feed.
Je le traite derrière pour insérer dans ma base différents éléments (titre, desscriptif, url, etc.).
Mon problème se situe au niveau de l'un des éléments du flux : les titres (ex.: <title>Lalbum des écrivains: Amélie Nothomb</title>).
Je fais un simple uft8_decode sur le titre et il me sort : "L?album des écrivains: Amélie Nothomb". Pourquoi ?
Alors j'ai fait le tour de la question et ai tenté plusieurs manip' d'encodage et de décodage dans tous les sens et je n'arrive pas à récupérer ’ à la place de . C'est fou non.

Est-ce que quelqu'un aurait une idée lumineuse ? Je n'en peux plus des problèmes d'encodage

PS : j'ai d'aillerus du mal à laisser apparaître le code numerique du ’ => & # 8 2 1 7 ;
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 14h30   #2
Membre du Club
 
Développeur informatique
Inscription : février 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2007
Messages : 70
Points : 61
Points : 61
Envoyer un message via MSN à f.lam
Peux-tu nous filer un aperçu des entetes du fichier rss ?
Y a t il utf8 de spécifié ? as tu essayé de tout transformer en code haxe avec htmlentities ?
f.lam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 16h47   #3
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
Voici l'en-tête :
Code :
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 16h49   #4
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
Voici tout ce que j'ai essayé (à prendre ou à laisser) :
Code :
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
 
$titre = (string)$movie->title;
 
$titre = unicode_urldecode($titre);
$titre = preg_replace('/&#\d{2,5};/ue', "utf8_entity_decode('$0')", $titre);
$titre = iconv("ISO-8859-2", "UTF-8",$titre);
$titre = mb_convert_encoding( $titre, "utf-8", "HTML-ENTITIES" );
$titre = unicode_decode($titre,'ISO-8859-1');
$titre = html_entity_decode((string)$movie->title);
 
//Function to decode URL's that contain Unicode characters
function unicode_urldecode($url)
{
  //split the URL into an array
  $url_array = split ("%",$url);
  //Make sure we have an array
  if (is_array($url_array))
  {
    //Loop while the key/value pair of the array
    //match our list items
    while (list ($k,$v) = each ($url_array))
    {
       //use base_convert to convert each character
       $ascii = base_convert ($v,16,10);
       $ret .= chr ($ascii);
    }
 }
 //return the decoded URL
 return ("$ret");
}
Rien n'a marché.
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2008, 16h43   #5
Membre du Club
 
Développeur informatique
Inscription : février 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2007
Messages : 70
Points : 61
Points : 61
Envoyer un message via MSN à f.lam
Serait ce une solution de mettre les données dans le fichier rss directement encodé avec les entités html ?? c'est lourd mais ca corrige des choses ..

"élégant" => "&eacute;l&eacute;gant"
f.lam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2008, 14h48   #6
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
J'aimerais bien avoir la main sur ce flux ... mais voilà, je ne fais que récupérer ce rss. Il n'est pas à moi ! ;-)
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2008, 15h49   #7
Membre du Club
 
Développeur informatique
Inscription : février 2007
Messages : 70
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2007
Messages : 70
Points : 61
Points : 61
Envoyer un message via MSN à f.lam
Files l'url si c'est possible, je vais faire des tests ..
f.lam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2008, 16h53   #8
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 182
Points : 31
Points : 31
Elle est dans mon premier message
dafalri est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h22.


 
 
 
 
Partenaires

Hébergement Web