Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1325 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] Scannez un texte pour mettre des liens sur certains mots ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Scannez un texte pour mettre des liens sur certains mots ???

n°102218
Thekeke2
Je ne reviens plus sur blabla
Posté le 19-02-2002 à 11:47:31  profilanswer
 

Bonjour à tous !
 
Voilà mon soucis du jour :) J'ai un texte avec des mots qui reviennent parfois et dont j'ai le nom et l'url dans une base de données... Je voudrais, qu'en affichant le texte, les liens se mettent automatiquement sur les mots...
 
Exemple : Pour toutes vos recherches sur Internet, vous pouvez.... blablabla
 
Là il y aurait un lien vers www.google.fr sur le mot recherche...
 
Pouvez vous me donner des infos ou me dire où en trouver ?


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...
mood
Publicité
Posté le 19-02-2002 à 11:47:31  profilanswer
 

n°102295
Thekeke2
Je ne reviens plus sur blabla
Posté le 19-02-2002 à 13:53:57  profilanswer
 

:bounce: c'est si dur ? vous me faites peur là :(


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...
n°102297
Mara's dad
Yes I can !
Posté le 19-02-2002 à 13:57:04  profilanswer
 

Si tu connais les expressions régulières, y'a : http://www.php.net/manual/fr/function.preg-replace.php


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°102299
Sh@rdar
Ex-PhPéteur
Posté le 19-02-2002 à 13:57:37  profilanswer
 

fait une regexp (et une recherche  :D )


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°102303
TBone
Pouet.
Posté le 19-02-2002 à 14:05:04  profilanswer
 

dans ma boîte, c'est un "compléteur" qui doit faire ça (c'est un morceau de mon prochain projet). un soft Java qui parse un flux XML (mais texte c'est OK too) et quand il rencontre un mot clé (existant dans une liste de mots) il va chercher des zinfos dans une base de données et crée un élément <keyword> avec ses attributs entourant le mot clé.
 
c'est en cours de design, et je m'oriente en effet vers un moteur de regexp en Java (je vais me mettre à chercher dans l'open source si il n'y a pas une lib de faite...)
 
je reste à l'écoute si on te propose d'autres soluces ;)

n°102306
Thekeke2
Je ne reviens plus sur blabla
Posté le 19-02-2002 à 14:08:43  profilanswer
 

oh la !!! Moi qui pensait que c'était tout bête :(  
 
Je suis un peu déçu là.. Je vais me mettre la dessus quand même mais j'ai très peur de pas avoir le niveau...


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...
n°102313
TBone
Pouet.
Posté le 19-02-2002 à 14:13:36  profilanswer
 

fonctionnelement c'est pas super compliqué... tu trouves une chaîne et tu la remplaces par une autre... maintenant, en PHP... j'ai jamais fait, regarde ce qui existe sur sourceforge non?

n°102317
youdontcar​e
Posté le 19-02-2002 à 14:23:26  profilanswer
 

thekeke2 a écrit a écrit :

oh la !!! Moi qui pensait que c'était tout bête :(


c'est tout bête, à une condition : qu'un mot clé ne fasse jamais partie d'une url.
 
ton code devrait ressembler à  
 
$texte = le texte à remplacer
 
while ($row = mysql_fetch_array($result))
{
  $texte = str_replace($row['keyword'], $row['link'], $texte);
}
 
où  
 
$row['keyword'] = 'Google'
 
et
 
$row['link'] = "<a href='http://www.google.com'>Google</a>"
 
désavantage de la méthode : Google sera remplacé, mais pas google ni GOOGLE (str_replace étant case sensitive). pour ça tu peux utiliser une expression régulière (juste pour chercher en case insensitive, c'est simple).
 
tu peux commencer avec de bêtes str_replace puis switcher aux expressions régulières quand ta première version marchera.

n°102318
youdontcar​e
Posté le 19-02-2002 à 14:25:06  profilanswer
 

hmmm, ce serait mieux de faire :
 
while ($row = mysql_fetch_array($result))  
{  
 $texte = str_replace($row['keyword'], "<a href='" . $row['link'] . "'>" . $row['keyword'] . '</a>', $texte);  
}  
 
où  
 
$row['keyword'] = 'Google'  
 
et  
 
$row['link'] = "http://www.google.com"

n°102322
Mara's dad
Yes I can !
Posté le 19-02-2002 à 14:30:50  profilanswer
 

T'en fais pas.
Quand tu aurras compris les regexp, tu serras trop content d'avoir appris un truc aussi puissant !
 
Exemple simple :  
http://www.surleau.com/temp/regexp.php
 
Il ne te reste plus qu'a construire les tableaux avec le contenu de ta base.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le 19-02-2002 à 14:30:50  profilanswer
 

n°102665
Thekeke2
Je ne reviens plus sur blabla
Posté le 20-02-2002 à 12:08:19  profilanswer
 

Mara's dad a écrit a écrit :

T'en fais pas.
Quand tu aurras compris les regexp, tu serras trop content d'avoir appris un truc aussi puissant !
 
Exemple simple :  
http://www.surleau.com/temp/regexp.php
 
Il ne te reste plus qu'a construire les tableaux avec le contenu de ta base.  




 
ah oui je vois (merci pour les autres du dessus aussi)...
 
En fait moi c 'est un chouilla diférent mais très proche de ce dernier exemple puisque les mots et les url sont dans une table...


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...
n°103529
Thekeke2
Je ne reviens plus sur blabla
Posté le 22-02-2002 à 12:42:42  profilanswer
 

Mara's dad a écrit a écrit :

T'en fais pas.
Quand tu aurras compris les regexp, tu serras trop content d'avoir appris un truc aussi puissant !
 
Exemple simple :  
http://www.surleau.com/temp/regexp.php
 
Il ne te reste plus qu'a construire les tableaux avec le contenu de ta base.  




 
Merci :)
 
Oui il me reste a comprendre comment reconstruire les array a partir des resultats de la BDD ... Tout un travail :) (je suis encore débutant :) ...)
 
Par contre dans : "/recherche/si", que veut dire le "si" ???


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...
n°103582
Mara's dad
Yes I can !
Posté le 22-02-2002 à 14:35:40  profilanswer
 

/.../ c'est pour délimiter une regexp.
i, c'est pour dire de ne pas faire la différence entre minuscules et majuscules.
s, C'est pour indiquer que le point "." remplace n'importe quel caractère (ce qui n'est pas util dans ton cas, mais comme je ne connais pas encore trop les regexp, çà vient d'un exemple que j'ai recopié un peut bètement !)
 
Docs :
http://www.php.net/manual/fr/pcre. [...] ifiers.php
http://www.php.net/manual/fr/ref.pcre.php


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°103832
Tentacle
Posté le 23-02-2002 à 02:04:35  profilanswer
 

Mara's dad a écrit a écrit :

/.../ c'est pour délimiter une regexp.
i, c'est pour dire de ne pas faire la différence entre minuscules et majuscules.
s, C'est pour indiquer que le point "." remplace n'importe quel caractère (ce qui n'est pas util dans ton cas, mais comme je ne connais pas encore trop les regexp, çà vient d'un exemple que j'ai recopié un peut bètement !)
 
Docs :
http://www.php.net/manual/fr/pcre. [...] ifiers.php
http://www.php.net/manual/fr/ref.pcre.php  




 
Pour l'option 's', ce n'est pas exactement ça.
Le point remplace par défaut n'importe quel caractère, SAUF les retours chariots. L'option 's' permet justement de prendre en compte les retours chariots, pour par exemple faire une expression régulière qui doit matcher plusieurs lignes.

n°106107
Thekeke2
Je ne reviens plus sur blabla
Posté le 28-02-2002 à 15:31:29  profilanswer
 

:cry:  
 
j'y arrive pas :(
 
C'est vachement plus dur que l'exemple si dessus quand on a a faire appel a une table pour le texte ET pour les definitions...
 
Je repete mon probleme pour les absents ou les interessés :
 
Bonjour,  
 
 
j'ai un texte (contenu dans une BDD) et je voudrais l'intégrer dans une page HTML (simple pour le moment) mais également que ce texte soit "scanné" à la recherche des mots contenus dans une table avec leur définition.
Si un mot du texte est dans cette table des définitions alors le mot deviendra cliquables et fait apparaitre une popup dhtml avec la definition associées (ca je sais faire)...
 
Mon probleme donc : comment faire pour que ce texte dynamique soit scanné à la recherche des mots présent dans l autre table ?
Je tourne en rond depuis 2 jours :(


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...
n°106206
Thekeke2
Je ne reviens plus sur blabla
Posté le 28-02-2002 à 17:23:32  profilanswer
 

Ca marche :)
 
J'ai reussi... Par contre il ne prend pas en compte le premier et le dernier mot de mon texte... Je rêgle le problème et je mettrais le code ici pour les personnes interessees...


---------------
[:idee] Tu t'ennuies ? www.pagepardefaut.com : jeux online, anims flash et sites insolites...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] Scannez un texte pour mettre des liens sur certains mots ???

 

Sujets relatifs
[SQL] requête portant sur un ensemble de mots non ordonnés :))[PHP] INCLUDE---> Je n'y arrive pas
[PHP] Truc chelou ....[MFC] Changer la police d'un Texte Static
[PHP] Getmicrotime()[ Newbie en PHP/MySQL ] Faire un formulaire
[PHP] lire le contenu d'un fichier...Php Mysql + Win Xp
[PHP] manière légère de ne pas perdres les champs lorsque submit 
Plus de sujets relatifs à : [PHP] Scannez un texte pour mettre des liens sur certains mots ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR