Page 1 sur 1

trouver un string dans un string

Posté : 25 nov. 2005, 18:47
par VaN
Bonjour,
j'aimerais réaliser la chose suivante :

J'ai une table USERS avec des pseudo dedans.
Lorsque l'un de ces pseudo apparait sur le site, j'aimerais qu'un script crée automatiquement un lien vers la fiche de ce pseudo (avec en parametre l'id du pseudo, mais ça je sais faire :) ).

Mon probleme est que je ne sait pas comment savoir si un texte, que j'extraie de ma bdd, contient l'un (ou plusieurs) de ces pseudos.

des conseils ?

Posté : 25 nov. 2005, 19:27
par VaN
je viens de trouver :
if (strstr($texte, $result['pseudo']) == TRUE)
	{
		$result['pseudo'] = "<a href=\"".$_SERVER['PHP_SELF']."?cat=memb&id=".$result['id']."\">".$result['pseudo']."</a>";
	}
j'aimerai maintenant pouvoir decouper $texte en 3 parties :
- la partie avant $result['pseudo']
- $result['pseudo']
- la partie après $result['pseudo]

Ainsi, je pourrai rajouter mon lien autour de $result['pseudo'], puis recoller le texte en un seul morceau.

[EDIT] trouvé, avec explode()
Le probleme que j'ai maintenant est que ce pseudo, dans le texte, est précédé d'un tag (exemple : GG18|wolf pour le pseudo wolf), et j'aimerais récupérer cette partie précédent le pseudo, pour l'incorporer dans le lien.

Existe t'il une fonction qui pourrait m'aider ?

Posté : 25 nov. 2005, 20:13
par jobherzt
je ne vois pas trop ou tu veux en venir, mais la reponse a ta question s'appelle expression reguiliere.

Bon courage !

Posté : 26 nov. 2005, 20:17
par Truc
Le probleme que j'ai maintenant est que ce pseudo, dans le texte, est précédé d'un tag (exemple : GG18|wolf pour le pseudo wolf)
eh il a plusieur façons de faire mais la plus simple que je vois est de refaire un explode sur "|" (solution qui marche si le pseudo est toujours précédé de ce caractère. :wink:

Posté : 26 nov. 2005, 23:57
par rami
Je ne suis pas certain car à mon avis, ca doit être des noms de teams Counter Strike, dont les tags sont très différents d'une team à l'autre... A moins que tu ne veuilles gérer qu'une seule equipe, auquel cas, il suffira effectivement de rechercher le caractère '|' dans le pseudo.

Posté : 27 nov. 2005, 18:59
par s3b54sk8
Si c'est pour les noms de team, pourquoi s'embetter ? Dans ta table USERS tu rajoutes le champs "team" par exemple. Je pense que ca sera le plus simple.

Posté : 28 nov. 2005, 14:58
par VaN
Effectivement, c'est bien pour gérer des liens sur des pseudo d'une (et une seule) team CS. Une fois que j'ai repéré le caractère |, que dois-je faire ? prendre les caractères jusqu'a l'espace précédent ? comment faire ?

Posté : 28 nov. 2005, 21:27
par Truc
je pensait que tu avais compris le fonctionnement de explode() puisque tu en parlais toi meme, essaie ça:
$pseudo="GG18|wolf";
$ex=explode("|",$pseudo);
echo $ex[0]; // affiche GG18
echo $ex[1]; // affiche wolf