trouver un string dans un string

VaN
Mammouth du PHP | 1107 Messages

25 nov. 2005, 18:47

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 ?

VaN
Mammouth du PHP | 1107 Messages

25 nov. 2005, 19:27

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 ?

Eléphant du PHP | 383 Messages

25 nov. 2005, 20:13

je ne vois pas trop ou tu veux en venir, mais la reponse a ta question s'appelle expression reguiliere.

Bon courage !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 nov. 2005, 20:17

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 983 Messages

26 nov. 2005, 23:57

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.

Eléphant du PHP | 82 Messages

27 nov. 2005, 18:59

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.
Sébastien.

VaN
Mammouth du PHP | 1107 Messages

28 nov. 2005, 14:58

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 ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 nov. 2005, 21:27

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute