Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2006, 22h31   #1
Membre régulier
 
Inscription : décembre 2003
Messages : 130
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 130
Points : 73
Points : 73
Envoyer un message via MSN à Michel_57
Par défaut lien cliquable

Salut ! J'ai fait une fonction qui permet de détecter les liens et les rendre cliquables en les insérant dans une balise <a></a>

Je viens de me rendre compte qu'elle ne fonctionne pas si le lien possède des variables de type GET, il bloque au symbole '&' pourtant je ne crois pas que ce soit un métacaractère

Voici ce que j'utilise actuellement :

Code :
preg_replace('!(http://|www.)[a-z0-9A-Z.?/=&_-]+!i','<a href="$0" target="_blank">$0</a>',$texte);
Alors je ne sais pas si je n'ai pas les yeux en face des trous ou bien si il y a quelque chose dont je ne suis pas au courant

Donc si vous savez ce qui cloche ... je vous écoute !

Merci
Michel_57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 22h37   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
perso j'utilise ceci pour rendre les URLs cliquables :
Code :
1
2
3
4
5
6
	$patterns[] = '§(^|\s)([a-zA-Z]{3,6}:/{0,3}\S*)(\s|$)§Us';
	$replaces[] = ' <a href="$2" onclick="window.open(this.href); return false" class="blank">$2</a> ';
 
	$patterns[] = '§(^|\s)(www\.\S*)(\s|$)§Us';
	$replaces[] = ' <a href="http://$2" onclick="window.open(this.href); return false" class="blank">$2</a> ';
	return preg_replace($patterns, $replaces, $TXT);
C'est certainement plus large, mais ça ne m'a jamais fait défaut, par contre, pense à autoriser les ; dans ton pattern ainsi que les %
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 22h44   #3
Membre régulier
 
Inscription : décembre 2003
Messages : 130
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 130
Points : 73
Points : 73
Envoyer un message via MSN à Michel_57
Ah oui effectivement, en autorisant le ';' maintenant ça marche merci beaucoup !
Je crois que j'ai même deviné pourquoi ! Ca a un rapport avec les &nbsp; et ces trucs là sûrement ...

Encore merci
Michel_57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 22h57   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Content d'avoir pu t'aider ^^
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h36.


 
 
 
 
Partenaires

Hébergement Web