Remplacer texte d'une page par lien via BDD

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Remplacer texte d'une page par lien via BDD

Message le Lun Nov 24, 2008 17:15

Bonjour

J'aimerais ajouter sur mon site une fonctionnalité que je vois sur pas mal de site. A savoir ajouter automatiquement un lien vers une page sur des mots contenus dans ma base de données.
Exemple dès que le mot "Tomate" apparait dans le contenu d'un article, un lien se fait pour renvoyer vers une page que j'aurai précisée dans la BDD Mysql parlant de la tomate.
Je m'explique très mal mais je suis sur que vous aurez compris.

Je souhaite principalement m'en servir pour renvoyer vers mon glossaire pour expliquer les mots compliqués aux utilisateurs.

Pourriez vous m'expliquer comment ça marche, voire m'indiquer le code PHP que je dois mettre en place.

Merci d'avance


dmathieu
Modérateur
Modérateur
 
Messages: 6912
Inscription: Ven Jan 09, 2004 16:21

Message le Lun Nov 24, 2008 17:21

Pour chacun des mots :

Code: Tout sélectionner
$str = str_replace($mot, '<a href="http://www.example.com/glossaire/'.$mot.'>'.$mot.'</a>', $str);

Voir aussi : http://fr3.php.net/str_replace

A toi ensuite de sélectionner tous les mots de ta base et de faire les replace appropriés.

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Lun Nov 24, 2008 17:55

Merci pour ton aide.

J'avais bien vu cette fonction en cherchant dans le guide php mais justement je doutais que ce soit la bonne. Car je n'arrivais pas à faire le lien avec la liste de mots dans la base de données
J'ai fait une base du style id, mot, adresse. J'arrive pas à insérer dans le str_replace la fonction permettant de voir si dans mon texte il y a un mot qui existe dans la base et si oui, le mettre dans le str_replace.

Je sais, je suis nul !


dmathieu
Modérateur
Modérateur
 
Messages: 6912
Inscription: Ven Jan 09, 2004 16:21

Message le Lun Nov 24, 2008 17:57

Code: Tout sélectionner
$sql = 'SELECT *
FROM `mots_base`';
$query = mysql_query($sql) or die(mysql_error());

while ($fetch = mysql_fetch_array($query)) {
$str = str_replace($fetch['mot'], '<a href="http://www.example.com/glossaire/'.$mot.'">'.$mot.'</a>', $str);
}

echo $str;


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5297
Inscription: Lun Juin 13, 2005 14:13

Message le Mar Nov 25, 2008 10:10

Le souci avec ce type de fonction est que
- si le mot tomate est stocké dans la base de données, et que le mot "tomates" est présent dans le texte, ca va faire un joli <a href="/glossaire/tomate.html">tomate</a>s
- si il y a dans la base de données le mot tomate rouge, il peut y avoir un double traitement dans le texte traité
- si le texte à traiter contient déjà des images, des liens, toute balise html, leur code peut être également traité par la requête: genre <img src="/images/tomate.jpg"/> deviendra <img src="/images/<a href="/glossaire/tomate.html">tomate</a>.jpg"/>.


BadProcESs
WRInaute accro
WRInaute accro
 
Messages: 2652
Inscription: Lun Juil 28, 2003 15:58

Message le Mar Nov 25, 2008 10:47

Expression régulière ?


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5297
Inscription: Lun Juin 13, 2005 14:13

Message le Mar Nov 25, 2008 10:59

Oui, avec aussi une hiérarchisation des requetes, pour pas que "tomate" ne soit traité si "tomate rouge" ne l'est.

Bon après si le texte à traiter n'est que du texte, sans balise html, ca peut se faire. Mais c'est plus complexe qu'il n'y paraît

flam
Nouveau WRInaute
 
Messages: 16
Inscription: Ven Juil 16, 2004 12:22

Message le Jeu Nov 27, 2008 10:55

nickargall a écrit:Le souci avec ce type de fonction est que
- si le mot tomate est stocké dans la base de données, et que le mot "tomates" est présent dans le texte, ca va faire un joli <a href="/glossaire/tomate.html">tomate</a>s
- si il y a dans la base de données le mot tomate rouge, il peut y avoir un double traitement dans le texte traité
- si le texte à traiter contient déjà des images, des liens, toute balise html, leur code peut être également traité par la requête: genre <img src="/images/tomate.jpg"/> deviendra <img src="/images/<a href="/glossaire/tomate.html">tomate</a>.jpg"/>.


Je rencontre exactement ces problèmes si quelqu'un a un script utilisant les expressions régulières. Je suis preneur.
A+


zeb
WRInaute accro
WRInaute accro
 
Messages: 1186
Inscription: Dim Déc 05, 2004 19:47

Message le Jeu Nov 27, 2008 22:03



Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Test de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Calcul du taux de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
  • Transformer des simples citations de votre site en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités