Foros del Web » Programando para Internet » PHP »

hyperlinks con bbcodes y preg_replace eregi_replace

Estas en el tema de hyperlinks con bbcodes y preg_replace eregi_replace en el foro de PHP en Foros del Web. Hola les comento lo que quiero lograr. tengo el siguiente bbcode para las urls Código PHP: $text  =  eregi_replace ( "\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]" ,  "<a rel=\"nofollow\" target=\"_blank\" href=\"\\1\">\\2</a>" ,  $text ...
  #1 (permalink)  
Antiguo 10/05/2012, 08:02
 
Fecha de Ingreso: febrero-2009
Mensajes: 20
Antigüedad: 15 años, 9 meses
Puntos: 2
hyperlinks con bbcodes y preg_replace eregi_replace

Hola les comento lo que quiero lograr.

tengo el siguiente bbcode para las urls

Código PHP:
$text eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]""<a rel=\"nofollow\" target=\"_blank\" href=\"\\1\">\\2</a>"$text); 
$text eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a rel=\"nofollow\" target=\"_blank\" href=\"\\1\">\\1</a>",$text); 
todo funciona de maravilla. pero quiero que las urls que no van con bbcode se conviertan en hyperlinks automaticamente. para eso probe con esta funcion

Código PHP:
    function makeClickableLinks($text) {
    
$text eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
    
'<a href="\\1">\\1</a>'$text);
    
$text eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
    
'\\1<a href="http://\\2">\\2</a>'$text);
    
$text eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})',
    
'<a href="mailto:\\1">\\1</a>'$text);
    return 
$text;
    } 
funciona ya que a las urls sin bbcode las convierte en hyperlinks. el problema es que a las que ya tienen los bbcode las modifica.

como se puede hacer para que los dos codigos funcionen a la ves ? me explico?
  #2 (permalink)  
Antiguo 10/05/2012, 08:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: hyperlinks con bbcodes y preg_replace eregi_replace

Te sugiero estudiar acerca de expresiones regulares, ya que sin ese conocimiento es imposible que puedas aplicar ambos patrones.
__________________
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 14:08.