Messages: 166

Enregistré le: 3 Mar 2004

Message le Dim Déc 05, 2004 22:12

Salut à tous :D

Mon probleme : Je voudrais faire cette procedure dynamiquement avec php

-Affichage d'une recette
-Reperer un eventuel nom de recette dedans, trouver son numero dans la base a partir de son nom
-Faire un lien vers cette recette

Un peu comme sur wikipedia
exemple :
http://fr.wikipedia.org/wiki/%C3%89colo ... ur_Tansley
c'est a dire :
des que le script reconnait un mot qui a une definition : il fait un lien vers celui ci.

J'espere que vous avez compris ce que j'ai voulu dire ... :)

Je ne vois pas du tout comment faire, si quelqu'un pouvait m'aider ca serait bien :)

Pilou ! :wink:
Haut
9 Réponses
Messages: 742

Enregistré le: 13 Oct 2004

Message le Dim Déc 05, 2004 23:11

pour des sites comme wikipedia, il y a deja les mots qui sont indexes. pas difficile alors de les remplacer "a l'aveugle" par des liens.

Mais pour ce que tu dis, il faudrait pour chaque mot, aller verrifier s'il existe qqchose d'interressant a lier. ca risque d'etre couteux comme affaire... mais evidement ca serait le top.
Haut
Messages: 166

Enregistré le: 3 Mar 2004

Message le Dim Déc 05, 2004 23:20

et la methode couteuse ca serait quoi ? :?:
Haut
Messages: 2467

Enregistré le: 30 Aoû 2002

Message le Dim Déc 05, 2004 23:26

2 possibilités :

Première :
pour chaque mots de ta page, regarder si tu peux pas le linker.
problème : comment faire pour les definitions avec plusieurs mots...

2ème :
Pour chaque définition de ta base, rechercher une occurence* de cette définition sur la page en cours en faire un lien.

* par eregi_replace() par exemple
Haut
Messages: 37

Enregistré le: 23 Avr 2003

Message le Lun Déc 06, 2004 8:47

Traitement à effectuer en différé bien sûr. Si tu fais ça à la volée, bonjour le serveur ;)
Haut
Messages: 3593

Enregistré le: 10 Fév 2004

Message le Lun Déc 06, 2004 14:42

John1 a écrit:Traitement à effectuer en différé bien sûr. Si tu fais ça à la volée, bonjour le serveur ;)


Ou alors, le faire avec un dictionnaire local de taille réduite (genre 100 entrées, à valider) et lancer les expressions régulières. En général, le jargon d'un secteur donné n'est quand même pas si vaste que cela. Et, pourquoi pas, ajouter une mise en cache des résultats pour les articles qui ne bougent plus une fois écrit.
Haut
Messages: 1791

Enregistré le: 19 Jan 2004

Message le Lun Déc 06, 2004 16:05

Sur Wikipedia, ce sont les auteurs qui font ces liens, c'est pas automatique.
Haut
Messages: 166

Enregistré le: 3 Mar 2004

Message le Lun Déc 06, 2004 17:48

ok ....
donc apparement la methode la plus "simple" serait de faire comme wikipedia
c'est a dire mettre en [[ ]] les recettes que je veux linker et apres faire un traitement avec regex pour les modifier en liens ;)

Merci encore

Pilou! :D
Haut
Messages: 446

Enregistré le: 9 Juil 2004

Message le Lun Déc 06, 2004 18:01

il y a deux techniques en ce qui me concerne:

- cibler les eventuels mots clés en leur collant un tag lors de la saisie, ensuite on ne fait une recherche que sur ces mots clés en les remplaçant soit par le mot si pas de resultat, soit pas un lien si resultat

- creer une table d'association qui permet de metre en relation chaques items entre eux, ceci afin d'alleger les requetes par la suite

tout ça evite de faire des requetes en trop pour lier des mots qui n'ont rien a voir comme par exemple les "de" "la" et les verbes etc...

la premiere technique a l'avantage d'etre retroactive sans trop d'effort, mais peut poser des problèmes si il ya des mots utilisés dans plusieurs cas distinct, impossible d'assurer qu'on tombera sur la bonne definition.

la seconde est un peu plus lourde a metre en oeuvre et a maintenir, mais s'avere efficace dans le cas des multiples definitions et multiples associations.
Haut
Messages: 166

Enregistré le: 3 Mar 2004

Message le Lun Déc 06, 2004 18:05

mais ce que je vais faire c'est mettre une partie de l'expression entre [[ ]]
et apres lui demander de faire une recherche dans la base
extraire le nom et le numero a partir du [[ ]] et creer le lien
Je pense que ca doit etre possible de faire ca facilement ;)


Pilou!
Haut