vamos a ver una pequeña función php que genera enlaces automáticos a partir de una cadena de texto, una de las ventajas es que no tenemos que pedir al usuario que inserte un enlace con sus respectivas tags href, solo tiene que pegar el enlace tal cual

convierte esto
https://phpres.net

en esto
https://phpres.net

vamos con la función
function auto_link($text) {
  $pattern = "/(((http[s]?:\/\/)|(www\.))(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9.,_\/~#&=:;%+?-]+[a-z0-9\/#=?]{1,1})/is";
  $text = preg_replace($pattern, " <a href='$1'>$1</a>", $text);
  // fix URLs without protocols
  $text = preg_replace("/href='www/", "href='http://www", $text);
  return $text;
}
ahora un ejemplo muy sencillo
<?php 
function auto_link($text) {
  $pattern = "/(((http[s]?:\/\/)|(www\.))(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9.,_\/~#&=:;%+?-]+[a-z0-9\/#=?]{1,1})/is";
  $text = preg_replace($pattern, " <a href='$1'>$1</a>", $text);
  // fix URLs without protocols
  $text = preg_replace("/href='www/", "href='http://www", $text);
  return $text;
}
?>
<?php 

$text='Convertir la cadena en un enlace: https://phpres.net/';

echo auto_link($text);

?>

Editado
10
Puntos
2078
Visitas
7
Resp
Por alber hace 11 años
Admin
Respuesta #1
Está chévere la función, aunque no reconoce directamente los enlaces .es .ve .co .us
Para eso debe ser www.enlacen.com.es por ejemplo D:
Pero bueno ¡Funciona! jaja.
0
Puntos
Por jose hace 11 años
Master
Respuesta #2
claro cuando son dominios raros es otra historia, pues anímate y comparte tu una función que si los reconozca y agregas el enlace al tema en este hilo campeón
0
Puntos
Por alber hace 11 años
Admin
Respuesta #3
No me retes. Jajajaja, estaba intentando decifrar el código a ver si se podía hacer algo pero no entiendo nada xd
0
Puntos
Por jose hace 11 años
Master
Respuesta #4
se puede al hacer clik se abra una pespaña nueva
Saludos
Gracias
0
Puntos
Por maticapu98 hace 11 años
Novice
Respuesta #5
Si se puede amigo :-)
Lo que hay que haces es agregarle target='_blnak' a la quinta línea. Así.
$text = preg_replace($pattern, " <a href='$1' target='_blank'>$1</a>", $text);
5
Puntos
Por jose hace 11 años
Master
Respuesta #6
aquí va otra función mas compleja
//Convertir en link los http
function convertirLink($texto){

	/*** hacer en http.// todas las urls ***/
	$texto = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",$texto);
	/*** hacer las url en link ***/
	$texto = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a title='Click para ir al link' target=\"_blank\" href=\"$1\">$1</A>",$texto);
	/*** hacer los emails en links***/
	$texto = preg_replace("/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?))/i","<A HREF=\"mailto:$1\">$1</A>",$texto);
	
	return $texto;
}
0
Puntos
Por alber hace 11 años
Admin
Respuesta #7
Link en PESTAÑA NUEVA.
target='_blank'
function auto_link($text) {
$pattern = "/(((http[s]?:\/\/)|(www\.))(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9.,_\/~#&=:;%+?-]+[a-z0-9\/#=?]{1,1})/is";
$text = preg_replace($pattern, " <a href='$1' target='_blank'>$1</a>", $text);
// fix URLs without protocols
$text = preg_replace("/href='www/", "href='http://www", $text);
return $text;
}
15
Puntos
Por leksanboy hace 11 años
Master
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar