Foros del Web » Programando para Internet » PHP »

cambiar ulr de variable a enlaze

Estas en el tema de cambiar ulr de variable a enlaze en el foro de PHP en Foros del Web. bueno gente paso a explicar un gran problemon. mi web tiene un sistema bbcode que porgrame para que lo usuarios puedan enviar imagenes, enlazes lo ...
  #1 (permalink)  
Antiguo 04/12/2010, 15:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 0
cambiar ulr de variable a enlaze

bueno gente paso a explicar un gran problemon.

mi web tiene un sistema bbcode que porgrame para que lo usuarios puedan enviar imagenes, enlazes lo que sea.

el problema que tengo es que ademas de que lo usuarios puedan enviar sus enlazes mediante una tipica etiqueta [ulr]la web[/ulr].

quiero que todas las ulr que pongan sin linkear con el bbcode se transformen a enlazes:

eso lo pude hacer con esta funcion:


Código:
function ponerLinks( $str ){
    $tmp = eregi_replace('((ftp|http|www)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\\1" target="_blank">\\1</a>', $str);
    #Si esto se puede integrar en la regex sería mejor aún....
    return str_replace('href="www.','href="http://www.', $tmp);
}
pero aka es cuando surge el problema tambien me transforma por ejemplo lo que hay en la etiqeuta html.

por ejemplo:

<img src="http://www.miweb.com" />
y las imagenes terminan sin verse:

es posible tener bbcode y ademas transformar todas las ulr de una variable a enlazes???

lo que quiero lograr es lo que tiene este foro

que ademas de tenes un bbcode para enlazes cualquier ulr suelta la tranforma en enlaze.
  #2 (permalink)  
Antiguo 06/12/2010, 08:58
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: cambiar ulr de variable a enlaze

Tu problema es la regla en las expresiones regulares. Busca un poco más, o aprendé un poco más de reg exp como para seleccionar solo los link.

Etiquetas: enlaze, ulr, variables, cambios
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 17:08.