Possible Duplicate:
Need a good regex to convert URLs to links but leave existing links alone
This is a my sample input:
http://www.website.com/1/
Click here http://www.website.com/2/ or visit the website: http://www.website.com/3/
or http://www.website.com/4/
http://www.website.com/5/
I want a PHP function that converts the URLs inside the text into tags, like so:
<a href="http://www.website.com/1/">http://www.website.com/1/</a>
Click <a href="http://www.website.com/2/">here</a> or visit the website: <a href="http://www.website.com/3/">http://www.website.com/3/</a>
or <a href="http://www.website.com/4/">http://www.website.com/4/</a>
<a href="http://www.website.com/5/">http://www.website.com/5/</a>
There is a catch on line 2: if the URL is preceded by the word here
then the word should be used as the anchor text instead. I need to do this in PHP. I think preg_replace with /e
switch might help me accomplish this task but I am not sure. This is the (borrowed) regex I've used so far:
preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
// ^---- I've tried adding "|here "
// But I cannot get the order of \\1 and \\2 right
Please advice.