Converter URL para links com php

O Jeison Frasson escreveu (ou copiou) isso no dia 20/06/2013 Voltar
PHP

A um tempo atrás eu já tinha um função que fazia exatamente isso, porem comecei a ver alguns problemas nela, então fui pesquisar mais sobre o assunto.

Encontrei varias funções com ER (expressão regular) sem Regex (Expressão regular, foi só para mostrar outras duas formas de se escrever XD) a várias muito grandes que acabavam tendo o mesmo problema que a minha tinha, então cheguei a um ideal (ao menos me atendeu muito bem), segue a função

function url2link($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);
        return $text;
} 

Está linha $text = " ".$text; parece que foi um erro ou teste, mas não é ela é muito importante para o funcionamento pleno da função ok.

Espero ter ajudado, abraços a todos

Comentar

Quase todos direitos reservados a Newsmade
Converter URL para links com php | Newsmade