Regex pour changer URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Regex pour changer URL

Re: Regex pour changer URL

par Dr@ke » 26 mars 2010, 21:08

tu peux aussi tester cette reg :) :

Code : Tout sélectionner

'#www\.[a-zA-Z0-9]+([-.][a-zA-Z0-9]+)*\.[a-zA-Z]{2,4}(\/\w+(-\w+)?\/)*(\/)?#'
(Mais elle ne gère pas non plus les query strings)

Re: Regex pour changer URL

par JeanJean » 26 mars 2010, 19:24

Problème résolu => $contenu = preg_replace('#www.[a-zA-Z\-\/.]+#', '<a href="http://$0" class="url">http://$0</a>', $contenu);

Re: Regex pour changer URL

par JeanJean » 24 mars 2010, 23:52

J'ai trouvé une solution pour les tirets :

$contenu = preg_replace('#www.[a-zA-Z+-.]+#', '<a href="http://$0" class="url">http://$0</a>', $contenu);

Sauf que maintenant, il me faut les / en plus. Donc j'ai pensé rajouter +/ avec le -. Ca marche, les / sont reconnus, mais plus les tirets.

Je fais comment pour mettre deux + à la suite ?

Regex pour changer URL

par JeanJean » 24 mars 2010, 19:01

Bonjour,

Voilà, j'ai une variable $contenu qui contient le texte rédigé par le membre. Dedans figure des url. J'aimerais que ces url par exemple www.google.fr soit automatiquement transformé en <a href="www.google.fr">www.google.fr</a>

Voilà le code :
<?php
	$test = 'oikrhjoirehjphj www.google.fr ojprohjj www.siteduzero.com';	
	
	echo 'Ancien :<br />'.$test;
	echo '<br /><br />Nouveau :<br />'.preg_replace('#www.[a-zA-Z.]+#', '<a href="http://$0" class="url" style="color:red;">$0</a>', $test);
?>
Cependant, quand l'url contient un - par exemple www.google-test.fr là ca ne fonctionne plus. :/

Si quelqu'un sait comment régler le problème. :)