Foros del Web » Programando para Internet » PHP »

Expresiones regulares - Cambiar urls a enlaces html

Estas en el tema de Expresiones regulares - Cambiar urls a enlaces html en el foro de PHP en Foros del Web. Hola, [^ \t\n\r] es igual a (\S) no? Sabe alguien porque al poner esto: Código PHP: $texto  =  ereg_replace (  "(http|ftp)(s)?://[^ \t\n\r]+" , '<a href="\\0">\\0</a>' , $texto ...
  #1 (permalink)  
Antiguo 23/09/2008, 21:47
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Expresiones regulares - Cambiar urls a enlaces html

Hola,

[^ \t\n\r] es igual a (\S) no?

Sabe alguien porque al poner esto:

Código PHP:
$texto ereg_replace"(http|ftp)(s)?://[^ \t\n\r]+",'<a href="\\0">\\0</a>',$texto); 
Si se remplazan las urls pero si uso lo siguiente, no:

Código PHP:
$texto ereg_replace"(http|ftp)(s)?://(\S)+",'<a href="\\0">\\0</a>',$texto);  

//Tampoco

$texto ereg_replace"(http|ftp)(s)?://[\S]+",'<a href="\\0">\\0</a>',$texto); 
Saludos!
__________________
JoniJnm.es
  #2 (permalink)  
Antiguo 23/09/2008, 22:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresiones regulares - Cambiar urls a enlaces html

sera porque ereg no funciona con los mismos comodines que preg_* ??? (juro que no lo sabia)

¿y lo intentaste con preg_replace() ???

yo si, mira...

Código PHP:
$texto 'una ves estaba en una web http://jquery.com (se llamaba) pero la meti aca [http://google.com.mx]';
$texto preg_replace"#(http|ftp)(s)?://(\S)+#i",'<a href="\\0">\\0</a>',$texto); 
y me salio!!! :D
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/09/2008, 06:06
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Expresiones regulares - Cambiar urls a enlaces html

ah, pues yo si que no lo sabía... además no sé cómo va preg_replace, es que estoy aprendiendo xD

los simbolos # y #i son el principio y el final de la expresión, siempre se ponen?
__________________
JoniJnm.es
  #4 (permalink)  
Antiguo 24/09/2008, 09:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresiones regulares - Cambiar urls a enlaces html

pues no necesariamente el caracter #, ya que esta es la forma..

Código:
#  = separador
(.+?)  = expresion
#  = separador
misxeu  = opciones 
osea, el tema es que las expresiones con preg_* deben ir entre separadores (idéntico o de familia) y las opciones (hay varias) modifican el comportamiento....

de separadores puedes usar (ejemplos):

Código:
/(.+?)/
|(.+?)|
;(.+?);
@(.+?)@
osea, cualquier carácter (como mencione) pero siempre y cuando no lo uses en tu expresión, y si lo necesitas usar simplemente debes escaparlo.... ej.

Código:
/^\/?foo\/bar[^\/]*$/i
dejo este PDF haber si te sirve....

Enlace:

php-pcre-cheat-sheet.pdf
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:11.