Home > PHP > Find links within text and convert to active links with PHP

Find links within text and convert to active links with PHP

Recently I have had to integrate some tweets into a clients website via RSS. The problem I found is that the links are hidden in the description and are not active. The solution is as simple as using 3 regular expressions and replace the text URL with a HTML URL using PHPs eregi_replace function.

 
 
function activateLinks($string)
{  
 
// This regular expression looks for <strong>http:// </strong>type url
$string = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'<a href="1" target=_blank>1</a>', $string);
 
// This regular expression looks for <strong>www. </strong>type url
$string = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'1<a href="http://2" target=_blank>2</a>', $string);
 
// This regular expression looks for <strong>email@email.com</strong>
$string = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',
'<a href="mailto:1" target=_blank>1</a>', $string);
 
return $string;
 
}
 
//call function where ever you need it
$string= 'Scaling a dynamic background image in proportion using flashvisit
(http://www.flashnutz.com) or email me on brian@flashnutz.com'; 
 
echo activateLinks($string);
 

The output of the string would be

 
//output of $string
$string = 'Scaling a dynamic background image in proportion using flash visit
(<a href="http://www.flashnutz.com">http://www.flashnutz.com</a>) or
email me on <a href="mailto:brian@flashnutz.com"> brian@flashnutz.com</a>';
 

My next post will be how to read your twitter posts with php and then use this function to active the links within them.

Happy coding...

Post to Twitter Post to Plurk Plurk This Post Post to Yahoo Buzz Buzz This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

  1. July 29th, 2010 at 14:00 | #1

    mmm, thanks for the code but I am getting:

    Scaling a dynamic background image in proportion using flashvisit
    (1) or email me on 1

  2. July 29th, 2010 at 14:08 | #2

    mmmm, I am getting a deprecated message:

    http://www.php.net/manual/en/function.eregi-replace.php

    I suck in regex so I can not fix the issue.

  3. July 29th, 2010 at 15:29 | #3

    Hi Manuel,
    Try replacing eregi_replace(); with preg_replace();

  1. No trackbacks yet.
SEO Powered by Platinum SEO from Techblissonline