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 10/07/2011, 14h08   #1
Membre expérimenté
 
Inscription : mars 2010
Messages : 531
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 531
Points : 534
Points : 534
Par défaut problème dans lors de changement de caractère

salut


ma bd et mes fichier php sont en encodé en utf8

j'ai créer une méthode qui met une string en minuscule, remplace les espaces par des _
et qui remplace les accents par leur équivalent sans accent....

Code :
1
2
3
4
5
6
 
function text2url($string){
  $string=strtolower($string);
  $string=preg_replace('/\s/', '_', $string); 
  return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}
après ma connexion mysql, j'ai le code:
Code :
1
2
 
mysql_query("SET NAMES 'UTF8'");
j'ai aussi dans mon entête
Code :
1
2
 
header("Content-type: text/html; charset=utf-8");
dans le fichier php.ini, j'ai mi

Code :
1
2
 
default_charset = "utf-8"

or je retrouve avec un remplacement qui ne semble pas correct...
avec la chaine:

Quel a été votre première distribution linux?
je me retrouve avec:
quel_a_YotYo_votre_premiYire_distribution_linux?

une idée?
lequebecois79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 14h14   #2
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 15
Points : 26
Points : 26
UTF-8 peut représenté des caractères sur plusieurs octets (en particulier les caractères spéciaux) et certaines fonctions de manipulation de chaînes ne gèrent pas cette spécificité. Il faudrait vérifier que les fonctions que tu utilises sont "UTF-8-safe".
niehu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 14h18   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
utilise plutôt mysql_set_charset
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 18h33   #4
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 15
Points : 26
Points : 26
Sur php.net je suis tombé sur ce type de choses, si ça peut t'aider :
Code :
1
2
3
4
5
6
7
8
 
function text2url($string){
  $string=utf8_decode($string);
  $string=strtolower($string);
  $string=preg_replace('/\s/', '_', $string);      
  $string = strtr($string,utf8_decode('àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ'),'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
  return utf8_encode($string);
}
niehu est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h37.


 
 
 
 
Partenaires

Hébergement Web