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
Editado
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
Puntos
2078
Visitas
Visitas
7
Resp
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.
Para eso debe ser www.enlacen.com.es por ejemplo D:
Pero bueno ¡Funciona! jaja.
0
Puntos
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
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
Puntos
Por jose hace 11 años
Master
Respuesta #4
se puede al hacer clik se abra una pespaña nueva
Saludos
Gracias
Saludos
Gracias
0
Puntos
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í.
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
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
Puntos
Por alber hace 11 años
Admin
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;
}15
Puntos
Puntos
Por leksanboy hace 11 años
Master