PHP:¿Puedo hacer que las url que estén en un texto se hagan "linkeables"?

De Foros del Web

Juntando ideas armé esta función:

Código PHP:

function ponerLinks( $str ){
    $tmp = eregi_replace('((ftp|http|www)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\\1" target="_blank">\\1</a>', $str);
    #Si esto se puede integrar en la regex sería mejor aún....
    return str_replace('href="www.','href="http://www.', $tmp);
}  

Ejemplo de uso:

Código PHP:

function ponerLinks( $str ){
    $tmp = eregi_replace('((ftp|http|www)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\\1" target="_blank">\\1</a>', $str);
    #Si esto se puede integrar en la regex sería mejor aún....
    return str_replace('href="www.','href="http://www.', $tmp);
}
 
$str = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras tempor, pede at scelerisque cursus, www.arcunulla.com suscipit libero, iaculis tincidunt justo quam sit amet tortor. Donec quis elit. Vivamus nec sapien ut http://www.leo.com posuere consequat. http://Quisque.com.ar et nisl. Aenean dolor. Aenean blandit purus non felis. Sed elit justo, rutrum quis, ornare non, tincidunt blandit, nisl. Donec sodales massa non pede. In eleifend placerat risus. Nulla vitae elit vitae erat porttitor tristique. ftp://Phasellus.com.ar neque mi, imperdiet vel, mollis ac, placerat a, libero. Phasellus semper sodales ante. www.Mauris.com.cl placerat risus sollicitudin mauris. Donec at tellus. Aenean eu nulla. Curabitur mattis adipiscing augue. Suspendisse blandit, odio sit amet convallis volutpat, erat ante posuere tellus, quis ultricies lacus mi quis urna';
echo ponerLinks( $str );  

--nicolaspar 19 Oct 2007

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales