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 :

problème variable au sein d'une boucle for [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut problème variable au sein d'une boucle for
    bonjour

    j'essaie de simplifier mon code pour éviter ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if ($nb_mots==2) {
    	$mot_a_trouver = strtolower($listemot[0]);
    	$chaine_de_remplacement = '<span class="style_prune_selection"><b><em>'.$mot_a_trouver.'</em></b></span>';
    	$mot_a_trouver_minuscule = remplacement_chaine_caracteres($mot_a_trouver);
    	$remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);
     
    	$mot_a_trouver = strtolower($listemot[1]);
    	$chaine_de_remplacement = '<span class="style_prune_selection"><b><em>'.$mot_a_trouver.'</em></b></span>';
    	$mot_a_trouver_minuscule = remplacement_chaine_caracteres($mot_a_trouver);
    	$remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $remplace);
    }
    au profit de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $compteur = $nb_mots - 1;
    for ($i = 0; $i < $compteur; $i++) {
    	$mot_a_trouver = strtolower($listemot[$i]);
    	$chaine_de_remplacement = '<span class="style_prune_selection"><b><em>'.$mot_a_trouver.'</em></b></span>';
    	$mot_a_trouver_minuscule = remplacement_chaine_caracteres($mot_a_trouver);
    	$remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);	
    }
    mon problème est au niveau de ma variable $remplace qui est remise à zéro à chaque passage dans la boucle... et je souhaiterai qu'elle conserve ce qui a été écrit au passage précédent...

    comment dois-je procéder? car je pense qu'il y a quelque chose que j'ai mal initialisé...

    merci de votre aide

  2. #2
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $remplace .= preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);

  3. #3
    Membre du Club Avatar de ythim
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    si j'ai bien compri tu voudrais qu'a chaque passage dans ta boucle cela mette a la suite de ta variable remplace.

    Je suis peut etre a coté de la plaque mais a tu essayer de mettre juste un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $remplace .= preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);

  4. #4
    Membre du Club Avatar de ythim
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    lol trop lent

  5. #5
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    non trop rapides...

    je dis ça en plaisantant pour ythim...
    j'avais sans doute mal expliqué mon problème mais vous m'avez mis sur la solution qui est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $compteur = $nb_mots;
    $remplace = "";
    for ($i = 0; $i < $compteur; $i++) {
    	$mot_a_trouver = strtolower($listemot[$i]);
    	$chaine_de_remplacement = '<span class="style_prune_selection"><b><em>'.$mot_a_trouver.'</em></b></span>';
    	$mot_a_trouver_minuscule = remplacement_chaine_caracteres($mot_a_trouver);
    	if ($i==0) {
    		$remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);
    	} else {
    		$remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $remplace);
    	}
    }
    c'était ma variable $chaine qu'il fallait que je remplace par $remplace (le fruit du traitement preg_replace effectué au passage précédent dans la boucle)

    un grand merci pour votre aide

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

Discussions similaires

  1. Variables de session dans une boucle for
    Par lavande4 dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2008, 14h33
  2. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  3. Problème avec une boucle for
    Par cisse18 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/03/2006, 16h50
  4. [MySQL] Traitement des variables d'une boucle for
    Par liryc78 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/03/2006, 20h53
  5. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22

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