Foros del Web » Programando para Internet » PHP »

Ayuda Funcion preg_replace($patron, $reemplazo, $cadena);

Estas en el tema de Ayuda Funcion preg_replace($patron, $reemplazo, $cadena); en el foro de PHP en Foros del Web. Tengo grabes problemas para entender esta funcion... supongamos que tengo la cadena $cadena = '<li class="page_item page-item-8"><a href="http://tango/carlosgardel/gourmet/" title="Gourmet"><span>Gourmet</span></a></li>'; y a esta cadena quiero agregarle ...
  #1 (permalink)  
Antiguo 15/07/2009, 15:51
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Ayuda Funcion preg_replace($patron, $reemplazo, $cadena);

Tengo grabes problemas para entender esta funcion...

supongamos que tengo la cadena

$cadena = '<li class="page_item page-item-8"><a href="http://tango/carlosgardel/gourmet/" title="Gourmet"><span>Gourmet</span></a></li>';

y a esta cadena quiero agregarle entre despues de </a>

$agregar = '<div class="selector"></div>';

No logro armar el patron de busqueda para esto...

La idea es que me quede...

$caden_final = '<li class="page_item page-item-8"><a href="http://tango/carlosgardel/gourmet/" title="Gourmet"><span>Gourmet</span></a><div class="selector"></div></li>';

Me dan una mano...

Gracias
  #2 (permalink)  
Antiguo 15/07/2009, 15:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ayuda Funcion preg_replace($patron, $reemplazo, $cadena);

¿Como creaste el preg_replace?
  #3 (permalink)  
Antiguo 15/07/2009, 16:05
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Respuesta: Ayuda Funcion preg_replace($patron, $reemplazo, $cadena);

function filtrar_lista_paginas($output)
{
$output = preg_replace('~<li([^>]*)><a([^>]*)>([^<]*)</a>~','<li$1><a$2><span>$3</span></a>', $output);
$re = '~<li class="([^"]*)(?: current_page_(?:ancestor|item|parent))+([^"]*)"><a ~';
$output = preg_replace($re, '<li class="$1$2"><a class="active" ', $output, 1);
$output = preg_replace($re, '<li class="$1$2"><a ', $output);
return $output;
}

Esta es una funcion que ya tenia un script,

Sin tocar nada lo que necesito es meter despues de la etiqueta </a> un div... <div class="selector"></div>

Esa es la idea....

Gracias por responder
  #4 (permalink)  
Antiguo 15/07/2009, 16:08
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 7 meses
Puntos: 18
Respuesta: Ayuda Funcion preg_replace($patron, $reemplazo, $cadena);

Puedes hacerlo así:
Código PHP:
Ver original
  1. $pepe=preg_replace('(<\\/li>)', '<div class="selector"></div></li>', $cadena);
  #5 (permalink)  
Antiguo 15/07/2009, 16:49
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Ayuda Funcion preg_replace($patron, $reemplazo, $cadena);

Gracias, estas muy cerca de lo que necesito... ahora, el tema es que..

$output tiene el siguiente contenido

Código HTML:
<li><a class="active" href="http://tango/carlosgardel"><span>Home</span></a><div class="selector"></div></li><li class="page_item page-item-3"><a href="http://tango/carlosgardel/el-show/" title="El Show"><span>El Show</span></a></li> 
<li class="page_item page-item-8"><a href="http://tango/carlosgardel/gourmet/" title="Gourmet"><span>Gourmet</span></a></li> 
<li class="page_item page-item-10"><a href="http://tango/carlosgardel/el-lugar/" title="El Lugar"><span>El Lugar</span></a></li> 
<li class="page_item page-item-12"><a href="http://tango/carlosgardel/multimedia/" title="Multimedia"><span>Multimedia</span></a></li> 
<li class="page_item page-item-14"><a href="http://tango/carlosgardel/eventos/" title="Eventos"><span>Eventos</span></a></li> 
<li class="page_item page-item-16"><a href="http://tango/carlosgardel/merchandising/" title="Merchandising"><span>Merchandising</span></a></li> 
<li class="page_item page-item-18"><a href="http://tango/carlosgardel/tarifas-y-entradas/" title="Tarifas y Entradas"><span>Tarifas y Entradas</span></a></li> 
<li class="page_item page-item-20"><a href="http://tango/carlosgardel/contacto/" title="Contacto"><span>Contacto</span></a></li> 
<li class="page_item page-item-22"><a href="http://tango/carlosgardel/blog/" title="Blog"><span>Blog</span></a></li> 
y lo que me pasaste le hace el cambio a todos...

$pepe=preg_replace('(<\\/li>)', '<div class="selector"></div></li>', $cadena);

Yo necesito cambiarselo solo al que tiene la clase active...

Código PHP:
function filtrar_lista_paginas($output)
{
$output preg_replace('~<li([^>]*)><a([^>]*)>([^<]*)</a>~','<li$1><a$2><span>$3</span></a>'$output);
$re '~<li class="([^"]*)(?: current_page_(?:ancestor|item|parent))+([^"]*)"><a ~';
[
COLOR="Red"]$output preg_replace($re'<li class="$1$2"><a class="active" '$output1);[/COLOR]
$output preg_replace($re'<li class="$1$2"><a '$output);
return 
$output;

$output = preg_replace($re, '<li class="$1$2"><a class="active" ', $output, 1);

Como veras esa clase tambien se la cargo con preg_replace...

Y se le carga a uno en particular y no a toda la lista de la cadena...

Espero hacerme entender
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 04:25.