je cherche à faire un générateur de liens automatiques. Les textes, les mots, et les liens sont tous en base de données. Comment pourrais-je le faire svp ?
je cherche à faire un générateur de liens automatiques. Les textes, les mots, et les liens sont tous en base de données. Comment pourrais-je le faire svp ?
un exemple à adapter à ta base de donnée et à l'affichage que tu souhaite faire :
résultat visible sur cette page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php // connection BDD require('connectdb.php'); mysql_select_db($bdd,$db) or die('erreur de selection'.mysql_error()); // Affichage données documents $result = mysql_query("SELECT * FROM documents WHERE page_id=8 AND categorie_id=8 ORDER BY titre ASC"); echo '<ul>'; while ($row = mysql_fetch_assoc($result)) { $titre=$row['titre']; $lien=$row['lien']; $telecharges=$row['telecharges']; $id=$row['id']; $auteur_id=$row['auteur']; $taille=(filesize($lien))/1024; $res=mysql_query("SELECT * FROM auteur_doc WHERE id='".$auteur_id."'"); $donnees = mysql_fetch_array($res); $auteur_nom=$donnees['nom']; $auteur_prenom=$donnees['prenom']; echo '<li><a href="'.$lien.'" title="'.$titre.'" onclick="compteur(\''.$id.'\');window.open(this.href); return false;">'.$titre.'</a> -'.' '.$auteur_nom.' '.$auteur_prenom.' <font size="0.6em">- '.round($taille).' Ko.</font></li>'; } echo '</ul>'; mysql_close(); ?>
http://www.dar-saint-louis.fr/cours.php
En gros dans un texte X que je trouve deja sur ma BD,je veux que tous les mots que j'ai deja predefinie dans une autre table s'affiche en couleure automatiquement et que si on clic dessus sa m'amene a une page deja predefinie.
texte: aujourd'hui le poids de mais annee me pese de plus en plus.
mot: poids
pese
lien de poids : XXX.php
lien de pese : YYY.php
se qui me donneras:
aujourd'hui le poids de mais annee me pese de plus en plus.
Mais maientenant si je change de texte le travaille dois se faire automatiquement.
Donc le sa doit lire le texte et rechercher les mots predefinie dans se texte et les mettre en lien.
C'est relativement lourd comme opération :
(non testé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $req_texte = mysql_query('SELECT * FROM textes ...') or die(mysql_error()); while ($res_texte = mysql_fetch_assoc($req_texte)) { // S'il y en a qu'un on pourrait se passer de l'itération $req_mots = mysql_query('SELECT * FROM mots') or die(mysql_error()); while ($res_mots = mysql_fetch_assoc($req_mots)) { $res_texte['champ_texte'] = preg_replace('.\b' . preg_quote($res_mots['mot']) . '\b.', '<a href="' . $res_mots['lien'] . '" class="highlight">\0</a>', $res_texte['champ_texte']); } echo $res_texte['champ_texte'] }
Et certains cas ne sont pas ici traités (le remplacement pourrait ici se faire au niveau des liens). Mais il y a d'autres possibilités ...
en gros ce que fais ce petit programme:
Mais le texte est sur une table, les mots, et le lien sont sur une autre table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $paragraphe ='Dans les années 70, l équipe de football de Saint-Etienne a fait rêver des milliers de supporters. Sait-on si notre Zizou national nest pas la concrétisation de ce rêve.'; function affiche_texte_auto_lien ($texte) { $texte = preg_replace('`\b((football)s?)\b`si','<strong><a href="../football/football.php">$1</a></strong>',$texte); print (nl2br($texte)) ; } $paragraphe = affiche_texte_auto_lien ($paragraphe) ; ?>
Partager