Haim127
Haim127

Reputation: 585

PHP preg_replace multiple urls to links

I using this code to change urls to links:

<?php
// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
$text = "The text you want to filter goes here. http://google.com http://www.ynet.co.il";

// Check if there is a url in the text
if(preg_match($reg_exUrl, $text, $url)) {

       // make the urls hyper links
       echo preg_replace($reg_exUrl, '<a href="'.$url[0].'" rel="nofollow">'.$url[0].'</a>', $text);

} else {

       // if no urls in the text just return the text
       echo $text;

}
?>

But every link direct to the first link How can I make foreach that will solve it?

Thanks.

Haim

Upvotes: 0

Views: 1444

Answers (1)

Niet the Dark Absol
Niet the Dark Absol

Reputation: 324620

Try:

$reg_exUrl = "...";
$text = "...";
echo preg_replace($reg_exUrl, '<a href="$0" rel="nofollow">$0</a>', $text);

Much simpler ;)

Upvotes: 2

Related Questions