Jump to content

[SOLVED] link conversion


dennismonsewicz

Recommended Posts

I have a script that allows users to insert comments when they add a new entry into the CMS

 

Well The comments box is just a normal HTML textarea

 

The problem I am having is that users sometimes include links to other sites (which is allowable in the CMS I built) but what I need to happen is for my script to convert them into links to their respected places.

 

Example:

 

If a user puts in the comments this

 

www.google.com, www.yahoo.com, www.phpfreaks.com

 

I would like to convert the text links to actual html links, any suggestions?

Link to comment
https://forums.phpfreaks.com/topic/120750-solved-link-conversion/
Share on other sites

I have this code:

 

function replace_plain_text_link($plain_text) {
	$url_html = preg_replace(
	'/(?<!S)((http(s?):\/\/)|(www.))+([w.1-9\&=#?-~%;]+)/', '<a href=”http$3://$4$5″>http$3://$4$5</a><br />', $plain_text);
	return ($url_html);
	}

 

but it only replaces the root address. IE: www.test.com. anything after the .com does not become a link. Any suggestions?

Here's a function modified from this post: http://www.phpfreaks.com/forums/index.php?topic=209261.0 (funny what you can find with a search)

 

It works for links created in either of the two formats:

www.mysite.com/directory.file.php
[urlwww.mysite.com/directory.file.php[/url]

 

function makeClickableLink($text)
{
 $link =  preg_replace('%
     ### Not preceded by an url start.
     (?<!url[=\]])
     (
        ### Protocol or start.
        (?:
           (??:https?|ftp)://)
           |
           www\.
        )
        ### Body.
        (?>
           ### Gobble all non-space with the exception of [/url]
           (??!\[/url\])\S)+
           ### Avoid ending punctuation.
           (?<!\p{P})
        )
        ### Not followed by an url end.
        (?!\[/url\])
     )
  %x', '<a href="$1">$1</a>', $text);

 return $link;
}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.