Remplacer une suite de caracteres

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

kali_
WRInaute discret
WRInaute discret
 
Messages: 69
Inscription: Lun Juin 06, 2005 15:14

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: Ven Juin 30, 2006 21:57

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: 13876
Inscription: Mar Déc 23, 2003 9:04

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: Lun Juin 06, 2005 15:14

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: 13876
Inscription: Mar Déc 23, 2003 9:04

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: Lun Juin 06, 2005 15:14

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.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Leonick et 0 invités