script netlinkg interne

WRInaute passionné
bonjour,

je veux développer un script pour automatiser le netlinking entre mes pages internes.

j'ai pensé faire comme ça :

1- faire une table sql netlinking(id, anchor, url, title_du_lien)
2- à chaque chargement de page (dont les textes sont bien sûr en BD), parcourir cette table et modifier les textes en conséquent.

j'ai quelques questions :

1- faire en mysql ne va pas trop alourdir la charge serveur ? mieux vaut utiliser utiliser un fichier txt, ou xml, ou csv ?
2- comment faire les modifs du code source ?
a- avec un regexp bien sûr
b- si je modifie un lien (par exemple "voiture neuve") et que dans ma table après j'ai "voiture", ça ne risque pas de créer "un lien dans un autre lien" ?
c- si quelqu'un peut me donner un coup de main en regexp ce serait pas mal.

Merci à tous
 
WRInaute impliqué
Je n'ai plus le nom en tête mais je crois qu'il existe une société qui propose une solution technique pour gérer ce système de liens internes sans que tu aies à faire du "lourd" au niveau de ton code.

Par contre, je ne me souviens plus du nom, ni du prix...
 
WRInaute accro
C'est en effet très compliqué, suivant ce que tu veux comme résultats et suivant le texte que tu envoies en traitement.

Tu devras en effet utiliser des regex, avec traitement des requetes de la plus large à la plus précise sans double emploi (traiter "pomme rouge" avant "pomme" et ne pas traiter "pomme" ensuite)

Si le morceau de code que tu envoies contient du HTML, ca complique la chose
Imagine un
<img src="/images/pomme.html" alt="pomme"/>
qui deviendrait
<img src="/images/<a href="pomme.html">pomme</a>.html" alt="<a href="pomme.html">pomme</a>"/>

Bref c'est un morceau assez gros en programmation. bon courage ...
 
WRInaute passionné
[deuxième degré]merci de cette contribution très instructive[/deuxième degré]

edit : ca ne t'était pas destiné nickargall bien sûr

je reste ouvert donc aux coups de mains !
 
WRInaute accro
J'oubliais: Faudra aussi prendre en compte les lettres accentuées, les encodages, les minuscules/majuscules, les caractères HTML (&eacute; = é), etc ...
et enfin optimiser le tout pour ne pas bouffer toutes les ressources du CPU lors de la consultation des pages contenant le texte traité ...
Désolé, pas les compétences pour te filer un coup de main ;)
 
WRInaute discret
J'ai fait un "petit script" de ce type pas plus tard que ce matin (mais sur 10 entrées maxi)

Code:
maillage = array();
$maillage[0]['pattern'] = "toto";
$maillage[0]['replacement'] = "http://www.toto.fr";
$maillage[1]['pattern'] = "tata";
$maillage[1]['replacement'] = "http://www.tata.fr";

for($i=0;$i<count($maillage);$i++){
	$texte = preg_replace('`\b(('.$maillage[$i]["pattern"].')s?)\b`si','<a href="'.$maillage[$i]["replacement"].'">$1</a>',$texte);
}

Pas forcément le plus optimisé, mais assez efficace pour une petite liste de mot "simple"
 
WRInaute accro
Bonsoir

Il existe quelques plugins qui font ça relativement bien pour Wordpress... P'têt qu'en allant regarder le code, ça pourrait t'éclairer ?

Sinon y'a effectivement une société qui a développé l'un de ces plugins (payant, mais top), et qui vend le source de son algorithme. Je l'ai mais pas ici, j'essaye d'y penser ce soir et je te poste le lien.
 
WRInaute accro
nickargall a dit:
J'oubliais: Faudra aussi prendre en compte les lettres accentuées, les encodages, les minuscules/majuscules, les caractères HTML (&eacute; = é), etc ...
et enfin optimiser le tout pour ne pas bouffer toutes les ressources du CPU lors de la consultation des pages contenant le texte traité ...
Désolé, pas les compétences pour te filer un coup de main ;)
Tu as oublié les pluriels :mrgreen: Ca me vient à l'esprit parce que je suis en plein dedans sur un site que je viens de lancer ou j'ai mis pleins de liens "in texte" de façon automatique ... Quelques points de repères :

- traiter les mots trés par longueur (les plus longs en premier)
- gérer les caractères possibles devant et derrière (espace, ; : , - cr etc etc pour ne pas traiter des morceaux de mots
- faire gaffe effectivement aux car accentués et min/maj

Bref de quoi s'amuser au niveau algo ... Pour moi c'ets plus simple parce que je le fais sur un site statique et donc je mouline tout en BDD locale et ca fabrique les morceaux de page que je mets ensuite en ligne.
 
WRInaute accro
Allez, rajoutons pour être fou la possibilité de dresser un "pattern" de transformation : la première occurence met un lien vers A, la seconde un lien vers B, la troisième met des <strong>, la quatrième met des <em> :mrgreen:
 
WRInaute passionné
mitchum a dit:
J'ai fait un "petit script" de ce type pas plus tard que ce matin (mais sur 10 entrées maxi)

Code:
maillage = array();
$maillage[0]['pattern'] = "toto";
$maillage[0]['replacement'] = "http://www.toto.fr";
$maillage[1]['pattern'] = "tata";
$maillage[1]['replacement'] = "http://www.tata.fr";

for($i=0;$i<count($maillage);$i++){
	$texte = preg_replace('`\b(('.$maillage[$i]["pattern"].')s?)\b`si','<a href="'.$maillage[$i]["replacement"].'">$1</a>',$texte);
}

Pas forcément le plus optimisé, mais assez efficace pour une petite liste de mot "simple"


je teste ça demain

merci à tous pour tous vous commentaires plein de bonnes humeurs !
 
WRInaute accro
mitchum a dit:
Pas forcément le plus optimisé, mais assez efficace pour une petite liste de mot "simple"
mais ça tombe dans les erreurs possibles soulevées par nickargall
Fait un test avec <img src="/images/toto.jpg" id="toto" name="toto" with="100" height="100" title="toto" alt="toto" /> :wink:
 
WRInaute passionné
Leonick a dit:
mitchum a dit:
Pas forcément le plus optimisé, mais assez efficace pour une petite liste de mot "simple"
mais ça tombe dans les erreurs possibles soulevées par nickargall
Fait un test avec <img src="/images/toto.jpg" id="toto" name="toto" with="100" height="100" title="toto" alt="toto" /> :wink:


oha la suroptimisation :arrow:
 
WRInaute discret
Leonick a dit:
mitchum a dit:
Pas forcément le plus optimisé, mais assez efficace pour une petite liste de mot "simple"
mais ça tombe dans les erreurs possibles soulevées par nickargall
Fait un test avec <img src="/images/toto.jpg" id="toto" name="toto" with="100" height="100" title="toto" alt="toto" /> :wink:


Effectivement, (j'ai précisé que ca marchait sur un texte simple). Moi je m'en sert pour un champs texte simple sans html dedans... du coup ca marche correctement. Mais pour une utilisation plus large, a perfectionner !
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut