j'essaie de faire une fonction php qui ajoute un lien sur un mot dans une chaîne, jusqu'ici ça va.
Il faut respecter la casse et ne remplacer QUE les mots entiers
Voilà ma fonction
function add_lien_dans_description($chaine,$mot_interdit)
{
if($mot_interdit = '0')
{
$sql='SELECT keyword,url_k FROM keywords WHERE ORDER BY id ASC';
}
else
{
$sql='SELECT keyword,url_k FROM keywords WHERE keyword <> "'.$mot_interdit.'" ORDER BY id ASC';
}
$req=mysql_query($sql) or die('Erreur SQL ! <br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_array($req))
{
$in[] = ' '.$data['keyword'].''; ;
$out[] = ' <a href="'.$url_site.'/'.stripslashes($data['url_k']).'.html"
>'.stripslashes($data['keyword']).'</a> ';
}
mysql_free_result($req);
// str_ireplace ne prends pas en compte la casse
$chaine = str_ireplace($in, $out, $chaine);
return $chaine ;
}
Donc j'ai mis un espace devant le mot à remplacer mais ça ne suffit pas, et si je met un espace après le mot à rechercher, tout les mots suivi d'une virgule ou d'un point ne seront pas pris en compte.
Exemple:
$chaine = 'Webmaster hub le forum des webmasters';
$mot_rechercher = 'web';
$rendu = '<a href="le_lien">Web</a>master Hub le forum des <a href="le_lien">web</a>masters'
Alors que dans ce cas la il ne devrait pas y avoir de remplacement.
Je cherche depuis quelque temps sans trouver, alors si jamais vous pourriez m'aider ce serai génial.
Merci d'avance
Ce message a été modifié par sparh - 08 février 2010 - 19:28.



Haut










