Función auto enlace o autolink con php
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://datoweb.com/
en esto
https://datoweb.com/
vamos con la función
convierte esto
https://datoweb.com/
en esto
https://datoweb.com/
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://datoweb.com/'; echo auto_link($text); ?>
10
Puntos
Puntos
2115
Visitas
Visitas
7
Resp
Resp
Por alber hace 123 meses
Administrador
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.
Para eso debe ser www.enlacen.com.es por ejemplo D:
Pero bueno ¡Funciona! jaja.
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
Puntos
Por alber hace 123 meses
Administrador
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
Respuesta #4
se puede al hacer clik se abra una pespaña nueva
Saludos
Gracias
Saludos
Gracias
0
Puntos
Puntos
Por maticapu98 hace 123 meses
Principiante
Respuesta #5
Si se puede amigo :-)
Lo que hay que haces es agregarle target='_blnak' a la quinta línea. Así.
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);
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
Puntos
Por alber hace 123 meses
Administrador
Respuesta #7
Link en PESTAÑA NUEVA.
target='_blank'
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; }