Remplacer une suite de caracteres

kali_
WRInaute discret
WRInaute discret
 
Messages: 69
Inscription: 6 Juin 2005

Remplacer une suite de caracteres

Message le Sam Nov 25, 2006 19:46

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: Tout sélectionner
   $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 ?

cybrnetik
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: 30 Juin 2006

Message le Sam Nov 25, 2006 20:30

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;
}


e-kiwi
Modérateur
Modérateur
 
Messages: 15546
Inscription: 23 Déc 2003

Message le Lun Nov 27, 2006 9:53

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

kali_
WRInaute discret
WRInaute discret
 
Messages: 69
Inscription: 6 Juin 2005

Message le Lun Nov 27, 2006 16:18

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.


e-kiwi
Modérateur
Modérateur
 
Messages: 15546
Inscription: 23 Déc 2003

Message le Lun Nov 27, 2006 16:25

>> 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

kali_
WRInaute discret
WRInaute discret
 
Messages: 69
Inscription: 6 Juin 2005

Message le Mar Nov 28, 2006 4:29

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.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: bossboss et 0 invités