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 :

[Tableaux] La meilleure façon de "convertir"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Par défaut [Tableaux] La meilleure façon de "convertir"
    Salut a tous.

    Ceci est une question d'optimisation.

    Je doit convertir des textes du style
    . "en"->"Anglais"
    . "fr"->"Français" etc...
    Vous avez reconnu c'est la table des languages ISO639.
    J'ai donc quelques centaines de "xx" a convertire en "Xxxxxxxx"

    Quelle est la meilleur facon de proceder afin d'avoir un code optimiser et surtout RAPIDE.

    1) Je fait un tableau:
    $tab = array("fr"=>"Francais",.....)
    et je recupere ma variable par $tab["fr"]
    Cette solution force a recreer un tableau a chaque execution du script, peut etre lourd pour PHP ?

    2) Je fait des IFs:
    if ($lng == "fr") return "Francais";
    etc...
    Ce qui peut etre long si le language est du zimbaboué tout au fond de la liste.

    3) Je fais du MySQL.
    Je stock la liste dans une table MySQL et je fait une requette.
    Surement rapide et optimisé, mais oblige a creer une table et rend dépendant du bon fonctionnement de MySQL (pas toujours dispo)

    Quel est votre avis sur la question ???

    Merci... Thierry

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Par défaut
    je suis un fan des switch alors une fonction de ce genre fera l'affaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function maFonction($code)
    {
                    switch ($code) 
    		{ 
    			case 'fr': 
    				$langue = 'français'; break; 
    			case 'es':
    				$langue = 'espagnole'; break;
    			case 'en':
    				$langue = 'anglais'; break;
    			default : 
    				$langue = 'langue par defaut par ex';
    		}
                    return $langue;
    }
    c'est lisible et facile à modifier

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    hello,

    option 1 :
    tu peux créer ton tableau de références dans une fonction, il est créé, utilisé et oublié aussi sec lorsque tu sors de la fonction, tu optimise ainsi la gourmandise mémoire de ton tableau. Ca mange pas de pain et le temps d'éxécution devrait être minime.

    option 2 : IF... c'est super chiant à taper, et surement plus long que l'option 1. Pour ce qui est des switches, c'est à peu près pareil.

    option 3 : Surement la solution la plus lente, mais aussi la plus évolutive... On vit dans un monde bizarre en ce moment... Des Montenegro disent merde à la Serbie... des pays sont dans une telle période d'obscurantisme qu'ils sont surement pas référencés mais il est fort probable que ca ne dure pas éternellement... bref, une base de données te permettrait de répondre facilement aux cas les plus bizarres

    option 4 : Fichier... plus rapide que la BDD je pense... et plus "gérable" que le tableau ou les IF... XML, CSV, texte brut, t'as le choix... mais perso je préfererais surement la BDD

    Bon courage

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