Remplacer une suite de caracteres

WRInaute discret
Bonsoir

J'ai un probleme en PHP, pour remplacer une suite de caractere.

J'ai un texte stocké dans une base de donnée, ainsi qu'une liste de mot stocké dans une autre table.

Je voudrai que mon script recherche les mots de la base dans le texte, pour les remplacer de la facon suivante :

mots rechercher : alex, nicolas, julien
texte : n'importe

je voudrai obtenir quelque chose comme : julien ==> bonjour julien.

Voila :

Code:
	$sql = "SELECT * FROM `noms_personnages`"; 
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
	while($data = mysql_fetch_array($req)) 
	{ 
		$nom = $data['nom'];
		$texte = str_replace($nom,'Salut $nom',$texte);
	}	
	return $texte;

Seulement cette fonction ne remplace que la 1ere occurence du texte, et a la deuxieme ca ne remplace pas et n'affiche plus la suite.

une idee ?
 
WRInaute discret
Moi j'aurai fait cela comme ca
$sql = "SELECT * FROM `noms_personnages`";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_array($req))
{
$nom = $data['nom'];
print 'Bonjour '.$nom;
}
 
WRInaute accro
tu veux les remplacer à l affichage ou dans la table ?
si c est à l'affichage, je te conseilles de construire ta chaine à afficher dans une variable, et une fois toutes les données extraites de ta base, tu fais ton str_replace ou regex sur la variable avant affichage
 
WRInaute discret
cybrnetik : ce n'etait qu'un exemple ce n'est pas pour dire bonjour.

E-kiwi : C'est ce que je fait deja, mettre le texte dans une variable et faire un str_replace. Mais le pb c'est que la 1er fois que le mots est trouvé dans le texte il est bien remplacé, mais a la 2eme fois ca plante. Car il faut faire une boucle, qui ne soit pas infinie.
 
WRInaute accro
>> Mais le pb c'est que la 1er fois que le mots est trouvé dans le texte il est bien remplacé, mais a la 2eme fois ca plante

je ne vois pas ce que tu veux dire
 
WRInaute discret
Je veu dire qu'on texte comme :

"Nicolas mange du chocolat.Nicolas fait du sport..."

si tu veux remplacer le mot Nicolas ca va donner :

"Nicolas mange du chocolat."

Voila ce que ca donne.
 
Discussions similaires
Haut