Fonction suppression accent PHP

pekwy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
pekwy Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1 011
 
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   Statut Membre Dernière intervention  
 
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