Fonction suppression accent PHP

Fermé
pekwy Messages postés 11 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 4 juin 2012 - 13 mai 2011 à 10:19
pekwy Messages postés 11 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 4 juin 2012 - 13 mai 2011 à 11:14
Bonjour à tous,

J'essaie de récupérer une chaîne de caractères "titre" via un formulaire. Jusque là pas de problème. Mais je souhaiterais pouvoir modifier cette chaîne de caractères en supprimant les accents.

J'ai donc essayé de la manière suivante :

<?php
$titre = $_POST['titre'];

function ModifierCaractere($chaine){
$chaine = strtr($chaine,"ÀÂÄÇÈÉÊËÌÎÏÑÒÔÕÖÙÛÜàáâãäåçèéêëìíîïñòóôõöùúûüýÿ","aaaceeeeiiinoooouuuaaaaaaceeeeiiiinooooouuuuyy");
												   
return $chaine;
};

?>


En faisant :
echo ModifierCaractere(élephant);
j'obtiens bien elephant sans accent
Mais en faisant :
echo ModifierCaractere($titre);
j'obtiens le titre renseigné dans le formulaire avec les accents.

Quelqu'un pourrait m'éclairer ?
Cordialement
A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
13 mai 2011 à 10:40
Bonjour,

C'est très étonnant...
Je ne vois qu'une cause possible : des soucis d'encodage.
Quel est l'encodage de ta page PHP ? Celui-ci est-il le même que l'encodage de ta page HTML générée, et est-il bien transmis au client dans les en-têtes ?

Xavier
0
pekwy Messages postés 11 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 4 juin 2012
13 mai 2011 à 11:14
Bonjour et merci pour votre réponse !

Mes deux pages *.php sont encodées en ISO 8859-1.

Voici les codes complets de ces pages, je ne sais pas si cela peut vous aider :

Page fichier.php :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">
</head>
<body>  
<form method="post" action="nouveau.php">
<table border="0">
      <tr>
        <td><input type="text" name="titre" id="titre" value="<?php echo Titre; ?>" onFocus="javascript:this.value=''" /></td>
      </tr>
      <tr>
        <td>
          <input type="submit" value="OK"/>
          </td>
      </tr>
    </table>
</form>
</body>
</html>


Page nouveau.php :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">
</head>
<body>  
<?php
$titre = $_POST['titre'];

function ModifierCaractere($chaine){
$chaine = strtr($chaine,"' ÀÂÄÇÈÉÊËÌÎÏÑÒÔÕÖÙÛÜàáâãäåçèéêëìíîïñòóôõöùúûüýÿABCDEFGHIJKLMNOPQRSTUVWXYZ","--aaaceeeeiiinoooouuuaaaaaaceeeeiiiinooooouuuuyyabcdefghijklmnopqrstuvwxyz");
												   
return $chaine;
};
echo ModifierCaractere($titre);
?>
</body>
</html>


Bien cordialement
0