Transformer texte en lien, avec une base de donné

Eléphanteau du PHP | 22 Messages

18 sept. 2008, 21:54

Bonjour à tous,

Questions à propos de récupératin de données dans une base SQL.


J'aimerai que quand dans un texte, les lien hypertexte soir directement cliquable dans la récupération.

Je m'explique.

Par exemple, si j'écrit :

Code : Tout sélectionner

Préférez vous http://www.google.fr ou http://www.yahoo.fr ? et que pensez vous de wwv.msn.fr ?
on onbtiene :

Préférez vous http://www.google.fr ou http://www.yahoo.fr ? et que pensez vous de http://www.msn.fr ?


Merci de vos réponses.
Oups :wink:

Mammouth du PHP | 2937 Messages

18 sept. 2008, 22:04

Les expressions régulières font des miracles.
$texte = 'ton texte avec des URLs comme http://www.phpfrance.com';
$texte_cliquable = preg_replace ("#(https?:/{2}www\.[-_./0-9a-z]+)#i", '<a href="\1">\1</a>', $texte);
L'expression régulière en elle-même est, certes, perfectible ; mais, elle donne l'idée de ce qu'il faut faire. ;)

Eléphanteau du PHP | 22 Messages

18 sept. 2008, 22:15

merci Victor BRITO pour cette réponse rapide je vais essayé.

je me suis mal exprimé.

En fait le texte est récupéré d'un formulaire dans un textarea.

J'aimerai aussi savoir où mettre le code :?

sur mon formulaire le textarea ce nomme "texte"

sur la page d'affichage, les infos sont affichés avec <?=$oupstexte?>

Merci de vos réponses.

Eléphanteau du PHP | 22 Messages

19 sept. 2008, 00:38

sujet édité.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 sept. 2008, 08:22

L'origine du texte n'a aucune importance :)

Dans le code que Victor t'a donné, il te montre comment utiliser une expression régulière sur un chaine qu'il a lui même défini en "dur" et stocké dans une variable. Maintenant ta variable peut très bien contenir une valeur issue de ta base de données, d'un champ saisie par l'utilisateur ou n'importe quoi d'autre. Qu'elle est la variable qui contient ton texte ?

La fonction preg_replace() prend trois paramètres : une chaine contenant le masque recherché, une chaine contenant la valeur de remplacement, et la chaine dans laquelle recherche et remplacement doivent être effectués. Passe les bonnes valeurs et le remplacement se fera tout seul :)

Quant à "où" exécuter le remplacement, ça dépend entièrement de toi et du traitement de ta chaine. Si tu veux la transformer dès que tu la récupères pour pouvoir ensuite travailler ou afficher la chaine modifiée, fais le assez tôt dans ton code. Si tu as des traitements à faire sur cette chaine avant de la transformer, place le code après ces traitements. Si tu veux juste la transformer lors de l'affichage, fais y appel uniquement au moment de l'affichage, etc. :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 22 Messages

19 sept. 2008, 20:57

Merci Ryle.

la plupart des choses que tu dit sont pour moi incompréhensible.

la variable ce nomme "oupstexte"

donc dans la page d'affichage j'ai mit :

Code : Tout sélectionner

<? $texte_cliquable = preg_replace ("#(https?:/{2}www\.[-_./0-9a-z]+)#i", '<a href="\1">\1</a>', $oupstexte); ?> <?=$oupstexte?>

Celà ne marche pas.
Une solution ? merci.

EDIT: J'ai reussi merci de votre aide.