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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    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 émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    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 confirmé 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
    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 confirmé 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
    Par défaut
    lol trop lent

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    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