Tengo una funcion que fuciona mejor
Código PHP:
function setLinks($txt) {
$tex = preg_replace('`(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)`i', '<a rel="external" href="\\1">\\1</a>', $txt);
$tex = preg_replace('`([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)`i', '\\1<a rel="external" href="http://\\2">\\2</a>', $tex);
$tex = preg_replace('`([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})`i', '<a rel="external" href="mailto:\\1">\\1</a>', $tex);
return $tex;
}
pero tengo problema con los enlases y los saltos de lines.... y tengo otra cadena que quiero reemplazar pero cualdo lo hago no me muestra ningun dato...
Código PHP:
preg_replace('/((?:http|https|ftp):\/\/(?:[A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?[^\s\"\']+)/i','<a href="$1" rel="nofollow" target="blank">$1</a>',$textodebase)
y creo que el problema esta en $textodebase que es el texto que biene de la BD... como hago?
este el otro...
Código PHP:
require 'functions.php';
$conexion = mysql_connect ('localhost','root','') or die ('No hay conexión a la base de datos');
$db = mysql_select_db ('bnotte',$conexion) or die ('no existe la base de datos.');
$consulta = "SELECT * FROM tabla ORDER BY id DESC";
$resultado = mysql_query($consulta);
$cant = mysql_num_rows($resultado);
while($fila=mysql_fetch_array($resultado))
{
$id = $fila['id'];
$textodebase = $fila['texto'];
?>
<div class="apunte"><?php echo setLinks($textodebase);?>
<?php
} mysql_close();
?>