Bonjour,
Je gère un site d'articles HTML dans une base de données. Chaque article possède un nom, et ce nom est cité dans d'autres articles.
J'aimerais donc qu'à chaque fois que ce nom est cité dans un autre article, un lien automatique soit créé.
J'ai donc un truc du genre :
Ca fonctionne très bien, excepté dans deux cas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $requete = mysql_query("SELECT * FROM remplacements"); while($rep = mysql_fetch_array($requete)) { $contenu = preg_replace("#\\b(".$rep['rep_search'].")\\b#i", "<a href='article.php' >" . $rep['rep_replace'] . "</a>", $contenu); }
- Quand l'article est déjà linké. Par exemple si quelqu'un écrit un article, insère un lien dedans vers un autre des articles existants déjà, mon bout de code va le retransformer en lien et on va avoir 2 liens imbriqués.
- Quand le nom de l'article se retrouve à l'intérieur d'une balise HTML. Exemple : si je met une image avec un title="Image de l'article Bla bla", l'article bla bla va être linké et ça va corrompre l'image...
Il faudrait donc exclure de la recherche regex tout ce qui se trouve à l'intérieur de <a></a> et tout ce qui se trouve à l'intérieur de <>, mais je n'arrive pas à grand chose car tout ce que je fais ne fonctionne pas :/
Merci d'avance de votre aide,
7804j
Partager