Page 1 sur 1

Transformer texte en lien, avec une base de donné

Posté : 18 sept. 2008, 21:54
par oups
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:

Posté : 18 sept. 2008, 22:04
par Victor BRITO
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. ;)

Posté : 18 sept. 2008, 22:15
par oups
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.

Posté : 19 sept. 2008, 00:38
par oups
sujet édité.

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

Posté : 19 sept. 2008, 08:22
par Ryle
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. :)

Posté : 19 sept. 2008, 20:57
par oups
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.