Page 1 sur 1

Problème avec foreach et preg_replace ...

Posté : 23 mars 2012, 05:56
par Zamokzy
Bonjour à tous,

Voila maintenant un bon moment que je m'arrache les cheveux sur un problème et je n'ai de cesse de tout essayer mais rien n'y fait !

J'ai un fichier .txt contenant des lignes de synonymes, par exemple : bonjour|coucou|salut|hello

Puis un script censé remplacer les mots correspondants d'une chaîne par un de ses synonymes. Jusqu'ici tout vas bien, le fichier est bien lu mais un soucis intervient quand plusieurs mots de cette liste apparaissent dans la même chaîne !

Exemple : "coucou à vous et salut aux autres !"
Le mot "coucou" et "salut" seront biens remplacés, mais tous les deux par le même mot !

Voici la partie du code qui pose problème :
$couple_uc = implode('|', $couple_array_uc);		
			
			foreach ($couple_array_uc as $mot_uc)
			{
				$this->text = preg_replace('/ '.$mot_uc.'([ ,\.+]{1})/', ' {'.utf8_encode($couple_uc).'}$1', $this->text);						
			}
$couple_array_uc correspond à "bonjour|coucou|salut|hello".


Il est évident que pour mon exemple il y a peu de chances que le mot bonjour et coucou ressortent 20 fois dans la chaîne mais le but est de remplacer certains mots biens précis par d'autres mais qui peuvent êtres variables.
J'ai essayé de bidouiller avec array_rand() mais peut être mis suis-je mal pris :/


Par avance merci d'avoir pris le temps de me lire pour éventuellement m'éclairer.
A bientôt :)

Re: Problème avec foreach et preg_replace ...

Posté : 23 mars 2012, 05:59
par Zamokzy
$couple_array_uc correspond à "bonjour|coucou|salut|hello" mais dans un array, extrait grâce à explode au préalable pour un traitement n'ayant rien à voir avec cette portion, désolé pour l'erreure :)

Re: Problème avec foreach et preg_replace ...

Posté : 23 mars 2012, 13:59
par Zamokzy
Petit up avant que je devienne chauve :)
Il m'est possible d'offrir une récompense pour la solution si besoin est :)