Alguien sabe??
Saludos
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)
| |||
Reconocer URL Hola amigos, ando programando un sistema de noticias, pero ahora se me ocurrio la idea de como hacerle para que identifique un enlace, osea que si en la noticiapongo www.forosdelweb.com me lo ponga como link. Alguien sabe?? Saludos ![]() |
| |||
he encontrado lo que buscas ![]() tendrias que hacer esto
Código:
entonces seria para poner este enlace...<?php $url="http://www.buayacorp.com]Programación y Diseño[/url]"; $url=preg_replace("`\[url\s*=\s*(.*)?\](.*?)\[/url\]`is", '<a href="$1">$2</a>', $url); echo $url; ?> http://www.forosdelweb.com asi...
Código:
pero sin puntos[.url=forosdelweb]www.forosdelweb.com[/.url] espero haberte ayudado ![]() |
| ||||
Y no lo puede hacer con expresiones regulares buscando www.xxxxxxxxx.com? Yo creo que seria la forma mas natural, sin tener que añadir codigo de mas a tu noticia, y asi quedara mas reutilizable.
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| |||
Haber, lo que quiero es hacer que me reconozca una url como link, osea que si pongo www.forosdelweb.com lo reconozca como url y no como texto, bien ?? Pero yo quiero que me reconozca cualquier direccion, no solo foros del web ... La pregunta seria : ¿Como puedo hacer para que me reconozca una url? |
| ||||
ya te respondio papixulooo... hay que usar expresiones regulares si o si y hacer el reemplazo cuando mostras la noticia, O en caso de que la noticia nunca sea editada, es mejor hacer el reemplazo cuando la envias.
__________________ Download FireFox |
| |||
Ok ya entendi, ahora resulta que la noticia la tengo en un campo de la base de datos: Seria Código PHP: |
| |||
Yo tengo el mismo problema y he hecho un código php recorriendo todo el texto. 1)todos los www los paso a http, y así tengo todos los url de la misma forma, y luego 2)por cada url le añado <a href=....>url </a>. Pero el problema es k recorro dos veces el texto y eso es costoso. Además como busco urls que acaben con espacio si acaba con return tengo problemas. Me podríais decir una forma más fácil sin obligar al usuario a utilizar bbcode? /////////////////////// CODIGO PHP ///////////////////// function reconocer_url($texto){ $offset=1; $start=true; $inici="www"; $texto=' '.$texto.' '; while($start){ $start = strpos($texto, $inici,$offset); if($start!=false){ $offset_plain=$start-$offset;//Obtenemos la longitud de texto normal $offset_normal=$offset;//inicio del texto normal $end = strpos($texto, ' ',$start); $offset=$end+1;//Offset siguiente bucle $end=$end-$start; $url1=substr($texto,$start,$end); //echo "start $start"; //echo "end $end"; //echo "url1 $url1"; $posic=$start-7; if($posic >= 0){ $caracter= strpos($texto,"http://",$posic); //echo "posicion http $caracter"; //echo "start $start"; if($caracter==$start-7){ $url2=substr($texto,$start,$end).' '; } else{ $url2="http://".substr($texto,$start,$end).' '; } } else{ $url2="http://".substr($texto,$start,$end).' '; } //str_replace($url1, $url2,$start); //echo "url2 $url2"; $result=$result.substr($texto,$offset_normal,$offs et_plain).$url2; } } if(offset < strlen($texto)){ $result=$result.substr($texto,$offset,strlen($text o)-offset);} //echo "result1 es $result"; $inici="http"; $start=true; $offset=1; $texto=' '.$result.' '; $result=' '; while($start) { $start = strpos($texto, $inici,$offset); //echo "start $start"; if($start!=false){ $offset_plain=$start-$offset;//Obtenemos la longitud de texto normal $offset_normal=$offset;//inicio del texto normal $end = strpos($texto, ' ',$start); $offset=$end+1;//Offset siguiente bucle $end=$end-$start; $url=substr($texto,$start,$end); //echo "url $url"; $link='<a href='.$url.'>'.$url.' '.'</a>'; //str_replace($url, $link,$start); //echo "url $link"; $result=$result.substr($texto,$offset_normal,$offs et_plain).$link; } } if(offset < strlen($texto)){ $result=$result.substr($texto,$offset,strlen($text o)-offset);} return $result; } //////////////////////////////////////////////////////////////////////////////////////////// |