Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2006, 14h02   #1
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
Par défaut problème variable au sein d'une boucle for

bonjour

j'essaie de simplifier mon code pour éviter ça:
Code :
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 :
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
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 14h03   #2
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
remplace
Code :
$remplace = preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);
par
Code :
$remplace .= preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 14h06   #3
Nouveau Membre du Club
 
Avatar de ythim
 
Étudiant
Inscription : 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 : 31
Points : 31
Envoyer un message via MSN à ythim
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 :
$remplace .= preg_replace($mot_a_trouver_minuscule, $chaine_de_remplacement, $chaine);
ythim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 14h07   #4
Nouveau Membre du Club
 
Avatar de ythim
 
Étudiant
Inscription : 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 : 31
Points : 31
Envoyer un message via MSN à ythim
lol trop lent
ythim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 14h26   #5
Membre confirmé
 
Avatar de mussara
 
Inscription : novembre 2004
Messages : 441
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : novembre 2004
Messages : 441
Points : 299
Points : 299
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 :
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
mussara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web