J'ai une fonction qui me permet de tranformer des pseudo de joueurs que j'ai sortit d'une bdd en lien vers sa fiche personnelle.
Voici la fonction :
$tab = '';
$i = 1;
$texte = 'OliGan zrtgfery ttgh dg ge. wolf ef ghy htrhyrju yrj. FaTC fsgsfg . OliGan sfdgfg';
// on seek les pseudo ds la base
$sql = "SELECT id, pseudo FROM membres WHERE disp_site='Y'";
$query = mysql_query($sql);
while ($result = mysql_fetch_array($query))
{
// creation du tableau avec toutes les reponses de la bdd
$tab[] = array( "pseudo" => $result['pseudo'],
"id" => $result['id'],
"i" => $i);
$i++;
}
// pour chaque ligne du tableau
foreach ($tab as $result)
{
// Si on trouve le pseudo dans le texte
if (strstr($texte, $result['pseudo']) == TRUE)
{
$cut = explode($result['pseudo'], $texte);
$debut = $cut[0];
// si il y'a un tag
if (substr($debut, -1) == '|')
{
$tag = substr($debut, -5);
$result['pseudo'] = $tag.$result['pseudo'];
$debut = explode($tag, $debut);
$debut = $debut[0];
$fin = $cut[1];
}
// sinon
else
{
$fin = $cut[1];
}
//creation du lien
$result['pseudo'] = "<a href=\"".$_SERVER['PHP_SELF']."?cat=memb&id=".$result['id']."\">".$result['pseudo']."</a>";
// on recompose le texte
$texte = $debut.$result['pseudo'].$fin;
}
}
echo $texte;
Le probleme que je recontre : Si jamais le pseudo est présent plus d'une fois dans le texte, le deuxieme lien ne se fait pas sur ce dernier, et pire, mon texte est coupé juste avant l'apparition de ce pseudo.Normal, puisque j'utilise un foreach() sur mon tableau.
Comment puis-je faire pour que la fonction fonctionne meme si le pseudo se repete ?
