> -----Original Message-----
> From: Lupus Michaelis [mailto:mickael+...@lupusmic.org] 
> Sent: Friday, September 04, 2009 7:46 AM
> To: php-general@lists.php.net
> Subject: Re: [PHP] Converting URL's to hyperlinks.
> 
> Daevid Vincent a écrit :
> > Maybe I misunderstood the OP,
>    OP ?

Original Poster

> > but wouldn't this (or something like it) be

Note the "something like it". I didn't write his app, just provided a
starting point.

> > $url = preg_replace("/(\...@\w+\.[a-za-z]{2,3})/i", "<a
> > href='mailto:$1'>$1</a>", $url);
>    This violate the numerous RFC about mail addresses, and some other 
> stuffs.

Blah blah blah.
I've used this code for about 6 years now and have yet to find emails that
it didn't work for. If someone has some funky (whacky) RFC extremity, then
so be it. That's their problem. Most people have NORMAL emails that follow
the above.

But you are correct, I have revised it to be a little more forgiving of some
allowed characters...

preg_replace("/([\w\.\-...@[\w\.\-_]+\.\w{2,6})/i",

> > 
> > $url = 
> preg_replace("/\s(http:\/\/)?(\w*\.?\w*\.[a-zA-Z]{2,3}.*?\s)/i", " <a
> > href='http://$2' target='_blank'>$2</a>", $url);
> 
>    Same as previously. What about .info, .museum and so on tld ? 

What about them? It's going to depend on how/where you use this. In my case,
2 and 3 letter domains are all I encounter. It's trivial to make it {2,6} if
you really are going to encounter a .museum domain. DOUBTFUL, but sure, I'll
concede the three extra letters. ;-)

However, you point out a few edge cases and so I optimized mine and now use
this one:
http://snipplr.com/view/2371/regex-regular-expression-to-match-a-url/

> > Oh, and your regex isn't 
> smart (you use the case insensitivity flag, but seek A-Z 
> characters...) :D

Noted. Thanks for the optimization.


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to