I am looking for a php way to search for a string of text and turn the text within that string to a link.
n being numbers 1-9
Jnn:nn:nn:nn
The link bit would look like this
<a href='http://juno.astroempires.com/map.aspx?loc=Jnn:nn:nn:nn'>Jnn:nn:nn:nn</a>
Hope this makes sense. I know its possible but I don’t know how to do it.
This is the final solution I came up with because I integrated into an existing function, thanks for the idea tho bumperbox and the edit Tobiask
function makeClickableLinks($text){
$text = html_entity_decode($text);
$text = " ".$text;
$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'<a href="\\1" target=_blank>\\1</a>', $text);
$text = eregi_replace('(((f|ht){1}tps://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'<a href="\\1" target=_blank>\\1</a>', $text);
$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'\\1<a href="http://\\2" target=_blank>\\2</a>', $text);
$text = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})',
'<a href="mailto:\\1" target=_blank>\\1</a>', $text);
$text = eregi_replace('(J[0-9]{2}):([0-9]{2}):([0-9]{2}):([0-9]{2})',
'<a href="http://juno.astroempires.com/map.aspx?loc=\\1:\\2:\\3:\\4" target=_blank>\\1:\\2:\\3:\\4</a>', $text);
return $text;
}
This is used in a ajax / mysql chat system. I did have this done by jQuery but its less for the user to do if I just store the links.
look at preg_replace
http://php.net/manual/en/function.preg-replace.php
i haven’t tested this but it should be pretty close
\d matches a digit
{2} means 2 digits
{$1} = everything that was matched inside the first set of ( )