IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

php : tableau avec clés sans accent


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 22
    Points
    22
    Par défaut php : tableau avec clés sans accent
    Bonjour
    J'ai une liste d'éléments tels que les suivants : mariage, paix, écologie, science, évêque.
    Je voudrais les mettre dynamiquement dans un tableau associatif qui me servira à générer une liste déroulante dont les éléments seront triés dans l'ordre croissant. Pour ce faire je dois examiner le premier caractère de chaque élément et le remplacer par son équivalent non accentué quand il possède un accent.
    J'ai donc créé un tableau de correspondance dans lequel j'ai :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $replacement = array(
    	"á" => "a",
    	"é" => "e");
    etc
    J'examine chaque élément avec les instructions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $car1=substr($element,0,1);
    if(array_key_exists($car1, $replacement))
    	{
                      $element1=$replacement['$car1'].substr($element,1);
                      $tableau["$element1"] = $element;
            }else{
                      $tableau["$element1"] = $element;
             }
    Je rencontre ici deux problèmes :
    1-je ne passe jamais dans la condition clé trouvée (par exemple pour écologie)
    2-le tableau n'est pas construit avec des éléments dont la clé ne possède pas de caractère accentué.
    Merci à qui pourra me dépanner
    CapErquy

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    tu t'embêtes pour rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	function desaccentuer($mot)
    	{
    		$a = array('à', 'ã', 'ä', 'â','@');
    		$e = array('é', 'è', 'ë', 'ê');
    		$i = array('ï','î','ì');
    		$u = array('ü','ù','û');
    		$o = array('ô','ö');
    		$t = str_replace( $a,'a', $mot );
    		$t = str_replace( $e,'e', $t );
    		$t = str_replace( $i,'i', $t );
    		$t = str_replace( $o,'o', $t );
    		$t = str_replace( $u,'u', $t );
    		return $t;
    	}

    le probleme de cette méthode c'est qu'elle est éminemment sensible à l'encodage de ton script et des données. Si ton script est encodé en utf8 et les données aussi, ça marche. Si l'un est en latin 1 et l'autre en utf8, ça ne marche pas.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 22
    Points
    22
    Par défaut Tableau avec clés sans accent
    Merci pour la réponse. Mon script est encodé en UTF_8. Par contre en ce qui concerne ma base l'interclassement est latin1_swedish_ci de même que le champ.
    Est-ce bon ?
    CapErquy

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/04/2013, 08h48
  2. Comment remplir un tableau avec random sans doublon ?
    Par muntu dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 16/07/2010, 09h42
  3. [phpMyAdmin] Transfert avec ou sans accents
    Par RuesToulonnaises dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/04/2007, 12h00
  4. [MySQL] Differencier les champs avec et sans accent.
    Par Rakken dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/12/2006, 18h18
  5. recherche de mot avec ou sans accent
    Par ddeee dans le forum ASP
    Réponses: 3
    Dernier message: 02/03/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo