Transformer une url en lien cliquable

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 060 fois - Téléchargée 30 fois

Contenu du snippet

Ce source est une "simple" expression régulière qui va vous permettre de transformer une url dans un texte en lien cliquable (<a href="...">)

Source / Exemple :


<?php
//Attention ! ! Le texte qui arrive doit déjà être en HTML, c'est à dire pas d'accents par exemple mais des é
// Pour cela vous pouvez utiliser la fonction htmlentities()
function url2link($texte) {
        // On remplace tout d'abord les "&" du texte (par exemple ceux qui peuvent être contenus dans une URL par un caractère accentué
        $texte = str_replace("&", "é", $texte);
        
        // Ensuite, voici la zolie regexp
        $texte = eregi_replace("(http|mailto|news|ftp|https)://(([-éa-z0-9\/\.\?_=#@:~])*)", "<a href=\"\\1://\\2\">\\1://\\2</a>", $texte);
        
        // Enfin on renvoi le texte en remettant leurs "&" comme il faut
        return str_replace("é", "&", $texte);
}
?>

Conclusion :


Ça marche pour beaucoup d'URL, mais je ne garanti pas que ça marche pour toutes, si vous rencontrez des URL sur lesquelles ça ne passe pas prévenez moi

A voir également

Ajouter un commentaire Commentaires
Messages postés
7
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
4 octobre 2009

Je ne suis pas sur de ls écurité de ce system, a vous de voir
Messages postés
11
Date d'inscription
vendredi 9 mars 2007
Statut
Membre
Dernière intervention
29 janvier 2010

salut
comment peut on retrouverune liste de mot dans une chaine de charactere delimiter par < et > ou autre pour les utiliser ailleur
est ce que c'est possible ?
exp
salut tout <le monde> j'aime <codes-sources> c'est top
et on aurra on le tableau les mots :
le monde et codes-sources
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Et hop, encore une tite modif (j'ai testé avec des liens google et il manquait le ; et le +) :

$texte = eregi_replace("(http|mailto|news|ftp|https)://(([-éa-z0-9\/\.\?_=#@:;+~,])*)", "\\1://\\2", $texte);

:D
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Pas mal ton script, il marche super bien je trouve, j'ai rajouté le caractère virgule, puisqu'il est souvent présent dans les URL (surtout avec l'URL rewritting)

$texte = eregi_replace("(http|mailto|news|ftp|https)://(([-éa-z0-9\/\.\?_=#@:~,])*)", "\\1://\\2", $texte);

++
WhiteDwarf
Messages postés
44
Date d'inscription
mercredi 16 juillet 2003
Statut
Membre
Dernière intervention
19 août 2006

j'ai mis ce code dans un script qui gere le bbcode et ca marche pas tres bien car ensuite lorsque on fait des urls entre les balises [img] ca fait des liens :(
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.