It works for several links but if I do the same 2x link in the string does not work how?
function MontarLink($texto)
{
if (!is_string ($texto))
return $texto;
$er = "/(https:\/\/(www\.|.*?\/)?|http:\/\/(www\.|.*?\/)?|www\.)([a-zA-Z0-9]+|_|-)+(\.(([0-9a-zA-Z]|-|_|\/|\?|=|&)+))+/i";
preg_match_all ($er, $texto, $match);
foreach ($match[0] as $link)
{
//coloca o 'http://' caso o link não o possua
$link_completo = (stristr($link, "http") === false) ? "http://" . $link : $link;
$link_len = strlen ($link);
//troca "&" por "&", tornando o link válido pela W3C
$web_link = str_replace ("&", "&", $link_completo);
$texto = str_ireplace ($link, "<a href=\"" . strtolower($web_link) . "\" target=\"_blank\">". (($link_len > 60) ? substr ($web_link, 0, 25). "...". substr ($web_link, -15) : $web_link) ."</a>", $texto);
}
return $texto;
}
echo MontarLink("ola mundo www.cade.com.br"); // ESSE FUNCIONA!!!
echo "<br><br>";
echo MontarLink("ola mundo www.cade.com.br outro site www.terra.com.br "); // ESSE FUNCIONA!!!
echo "<br><br>";
echo MontarLink("ola mundo www.cade.com.br mesmo site www.cade.com.br"); // NÃO FUNCIONA!!!