conversion de caractère.

Eléphanteau du PHP | 43 Messages

07 janv. 2008, 00:18

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']);

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 janv. 2008, 00:29

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);
}
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 43 Messages

07 janv. 2008, 00:56

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 janv. 2008, 01:03

Petit coup de pouce supplémentaire:
http://www.phpdebutant.org/article59.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 43 Messages

07 janv. 2008, 01:20

Merci beaucoup pour l'aide apportée...
Je vous souhaite une bonne soirée.