REGEX : interdire un mot

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour à tous !

Alors voilà, je vous explique mon problème. Sur un site, j'enregistre dans ma DB des articles dans lesquels je mets des liens.
Lors de l'affichage de l'article, j'affiche ces liens en mettant des balises <a href="..."> </a> autour automatiquement grâce à la regex suivante :

$donnees['contenu'] = preg_replace("#(https?://[^ \)<]+)#i", "<a href=\"$1\" target=\"_blank\">$1</a>", $donnees['contenu']); // REND LES LIENS CLIQUABLES



Si par exemple j'ai un lien entre parenthèse, ca fonctionne, la parenthèse finale n'est pas dans le lien.
Ex : (http://www.truc.fr) devient <a href="https://www.truc.fr/">http://www.truc.fr</a>

Mais si, par contre, j'ai https://www.truc.fr/
Et bien le point final sera pris en compte dans le lien.

Ma question est : comment faire pour, en regex, ne pas selectionner le point et l'espace ? J'ai bien tenté de mettre ^(\. ) mais bien sûr, ça ne marche pas.

Merci de votre aide !
A voir également:

2 réponses

Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
bonjour essaie ça :

substr(preg_replace("#([\r\n\t ]+)((https?|ftp)://(((w{3}\.)?)([\w-\.]+)\.([a-z]{2,4})((/([\w%/.\.\#\+;\&\:?=-]+))?)))#",'$1<a href="$2">$2</a>',' '.$string),1);
0
Utilisateur anonyme
 
Merci mais ne fonctionne pas totalement.

Si j'écris "http://www.truc.fr/page.php. Blabla..."
Le lien sera "http://www.truc.fr/page.php." avec le point donc.
0
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
ce n'est pas bien grave... et normal a la fois il est possible qu'une url se termine par un . de plus sa ne gène pas au fonctionnement du lien
0
Utilisateur anonyme
 
Ce n'est pas moi qui poste tous les articles sur mon site, parfois il s'agit d'utilisateurs lambda qui rajoutent des points à la fin du lien comme pour clore une phrase.

Il est possible qu'une URL se termine par un point mais c'est extrêmement rare.
Et si, ça gène au fonctionnement du lien. Beaucoup de sites renvoient un 404 si je rajoute un point à la fin du lien d'une de leur page (j'ai vérifié).

Donc j'aimerais ne pas selectionner ce dernier point.
0