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 :

variable str_replace multiple


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut variable str_replace multiple
    Bonjour à tous,
    petit question, est il possible de remplacer dans un variable plusieurs caractères en même temps
    variable style :
    [[2008],[2009],[2010],[2011],[2012],[2013],[2014],[2015],[2016],[2017],[2018]]
    à remplacer pour un résultat
    "2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018"

    je sais qu'avec str_replace on peut remplacer un caractère par un autre mais plusieurs, est ce possible sans faire de str_replace multiple ?

    Merci d'avance de votre aide

    Cdt

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Tu cherches peut-être la fonction strtr?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour,
    Citation Envoyé par spawns Voir le message
    ...je sais qu'avec str_replace...
    Tu crois savoir...
    Il suffit de lire la doc. : str_replace() prend aussi des tableaux (array) en paramètres.

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    attention avec str_replace(), l'ordre des valeurs recherchées est pris en compte... Faut pas te louper si tu veux arriver au résultat escompté.

  5. #5
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Effectivement j'avais pas vu que la fonction prenait les tableaux
    donc c'est nickel

    Merci pour l'info

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Hello,

    J'aimerais ajouter que vu ce que tu essayes de faire, il serait probablement plus simple de faire un preg_replace() plutôt qu'un str_replace()

    Tu pourrais faire quelque chose du genre :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $content = preg_replace('#\[([0-9]{4})\]#', '$1', $content);

    J'aimerais également ajouter un bout de code pour gérer facilement ses str_replace().
    Comme dit dans un commentaire précédent, il est important de respecter l'ordre de ses replacements, il est donc parfois difficile de maintenir son code efficacement.
    Je pense notamment à des codes pour remplacer les smileys par des images, et dont l'array est forcément conséquent.
    J'ai donc une solution : construire un array avec clé et valeur, et ensuite utiliser array_keys() afin de fournir l'array adéquat dans le premier paramètres de la fonction. Dans les 2 premiers paramètres, seules les valeurs sont utilisées, voilà pourquoi on a pas besoin de faire un array_values() pour le second paramètres.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $replacements = array(
         "mon_replace_1" => "ici je mets quelque chose",
         "mon_replace_2" => "ici je mets autre chose",
    );
    $content = str_replace(array_keys($replacements), $replacements, $content);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dichotomisation de variable à réponses multiples
    Par AlexFred dans le forum Macro
    Réponses: 2
    Dernier message: 21/10/2014, 10h01
  2. [CR XI] Commande SQL et variable à valeurs multiples
    Par tatayoyo dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 05/03/2012, 11h11
  3. [SQL2K5] Astuce pour utiliser une variable à valeur multiple
    Par Jinroh77 dans le forum Développement
    Réponses: 0
    Dernier message: 28/05/2008, 14h27
  4. bouton radio a variables multiples
    Par edenyorke dans le forum Langage
    Réponses: 9
    Dernier message: 04/05/2006, 02h01
  5. [EJBQL] Multiple Variable et ClassCastException
    Par alfsalim dans le forum Java EE
    Réponses: 4
    Dernier message: 23/12/2005, 16h40

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