J'ai un petit petit site perso dans lequel les utilisateurs peuvent poster rapidement une news (un peu à la manière twitter).
Ce que j'aimerai simplement faire, c'est que quand j'affiche le contenu d'un ticket, les URL soient détectées automatiquement et soient affichées sous forme de liens cliquables. (http://un.exemple.com)
Quelle serait la solution pour résoudre ce problème ?
Merci d'avance
Publicité
Posté le 03-02-2011 à 10:31:48
billgatesanonym
Posté le 03-02-2011 à 12:27:43
Il faut analyser les données de l'utilisateur et encapsuler les URL dans des <a href...>...</a>.
Ce n'est pas super facile à faire, c'est vrai, mais c'est faisable, sauf si vous êtes prisonnier d'un système fermé.
smaragdus
whores, drugs & J.S. Bach
Posté le 03-02-2011 à 13:54:24
Il y a plusieurs solutions : - Regexp coté serveur qui parse la news avant de la stocker
- Regexp coté serveur qui parse la news avant de l'afficher
- décorateur javascript coté client à coup de Regexp
A toi de voir selon tes compétences et tes contraintes techniques.
Driftwood
Posté le 03-02-2011 à 14:39:22
Ok merci de vos réponses
Je pense que je vais me tourner vers la 2ème option... ça me fera bosser les regexp !
Driftwood
Posté le 04-02-2011 à 15:13:38
Bon pour ceux que ça interesse, voila ce que j'ai trouvé
Code :
function clicklien($url){
$in=array(
'`((?:https?|ftp)://\S+[[:alnum:]]/?)`si',
'`((?<!//)(www\.\S+[[:alnum:]]/?))`si'
);
$out=array(
'<a href="$1">$1</a>',
'<a href="http://$1">$1</a>'
);
return preg_replace($in,$out,$url);
}
J'en ai essayé un bon paquet, et c'est celle qui traite le plus de cas possibles