Page 1 sur 1

conversion de caractère.

Posté : 07 janv. 2008, 00:18
par zippox
Bonjour je voulais savoir s'il existait une fonction en php qui convertit respectivement les caractere tel que é è à ç etc en caractere e e a c ?Car j 'utilise la fonction mail, et losque je reprend ce que les gens ecrive, et bien losqu' on ce recoit le mail, et bien il y a quelque surprise:
j 'ai taper ca :
"n'oubliez à votre place donc concentrez leurs efforts sur ce qui est important. Idéalement, Si vous avez besoin d'afficher votre Javascript ou SQL pour expliquer votre problème, c'est sûrement que vous postez dans le mauvais forum"
et j'ai recu ça :
n\'oubliez à votre place donc concentrez leurs efforts sur ce qui est important. Idéalement, Si vous avez besoin d\'afficher votre Javascript ou SQL pour expliquer votre problème, c\'est sûrement que vous postez dans le mauvais forum

Bon la ce n'est pas flagrant mais ce n 'est qu'un exemple

Dans ma fonction mail, lorsque je reprend ce que la personne a ecris, c'est ce code que j'utilise :

Code : Tout sélectionner

$nature = htmlspecialchars($_POST['nature']);

Posté : 07 janv. 2008, 00:29
par @rthur
Bonjour,

Il s'agit d'un problème de jeu de caractère, regarde du côté des fonctions utf8_decode() et utf8_encode() pour récupérer un affichage des accents corrects ;-)


Et sinon pour répondre directement à ta questions (même si la meilleure solution est de conserver correctement les accents), voici une fonction pour supprimer les accents d'une chaîne de caractère:
function suppr_accents($chaine) {
   $accents = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ');
   $sans = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y');
   return str_replace($accents, $sans, $chaine);
}

Posté : 07 janv. 2008, 00:56
par zippox
Merci de la reponse apporte, cela dit, ou dois je mettre la fonction?ou dois je faire appel à celle ci:
Voici un extrait de mon code :

Code : Tout sélectionner

<?php $msg = "Son nom : $nom \n"; $msg .= "Son prenom : $prenom \n"; $msg .= "Son adresse : $adresse \n"; $msg .= "Son adresse mail : $mail \n"; $msg .= "Son numéro de tel : $tel \n"; $msg .= "La marque de l'appareil : $marque \n"; $msg .= "La nature du problème : $nature \n"; $msg .= "Est ce que l'appareil a été acheté chez ELECTA? : $electa \n"; function suppr_accents($chaine) { $accents = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ'); $sans = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y'); return str_replace($accents, $sans, $chaine); } suppr_accents(); if(mail($email_destinataire, "SAV", $msg)) { echo "! Message transmis ! Veuillez patienter, vous serez redirige vers notre site";?>
car je n'ai pas reussi a le faire fonctionner.Merci

Posté : 07 janv. 2008, 01:03
par @rthur
Petit coup de pouce supplémentaire:
http://www.phpdebutant.org/article59.php

Posté : 07 janv. 2008, 01:20
par zippox
Merci beaucoup pour l'aide apportée...
Je vous souhaite une bonne soirée.