Foros del Web » Programando para Internet » PHP »

ayuda con preg_replace!!!

Estas en el tema de ayuda con preg_replace!!! en el foro de PHP en Foros del Web. Tengo una duda con la función preg_replace.. este es mi codigo: Código PHP: $text  =  preg_replace ( '(\[as\](.+?)\[\/as\])' ,  '<div id="$i" style="display:none;">$1</div> ' ,  $text );  lo que ...
  #1 (permalink)  
Antiguo 20/01/2009, 16:47
 
Fecha de Ingreso: abril-2007
Mensajes: 112
Antigüedad: 17 años
Puntos: 1
ayuda con preg_replace!!!

Tengo una duda con la función preg_replace.. este es mi codigo:

Código PHP:
$text preg_replace('(\[as\](.+?)\[\/as\])''<div id="$i" style="display:none;">$1</div> '$text); 
lo que necesito es que $i cambie de valor en cada remplazo, con que valla aumentando de 1 en 1 me sirve

como se hace eso??

Gracias!
  #2 (permalink)  
Antiguo 20/01/2009, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda con preg_replace!!!

Hola mytwm,

En ese caso debes usar preg_replace_callback, y hacer una función callback con una variable estatica para ir rastreando el contador.

Saludos
  #3 (permalink)  
Antiguo 20/01/2009, 20:02
 
Fecha de Ingreso: abril-2007
Mensajes: 112
Antigüedad: 17 años
Puntos: 1
Respuesta: ayuda con preg_replace!!!

sigue sin funcionarme

Código PHP:
function callback($i){
    
$out='<div id="$i" style="display:none;">$1</div>';
    return 
$out;
}
        
$text preg_replace_callback('(\[as\](.+?)\[\/as\])''callback'$test, -$i); 
algo estoy haciendo mal... $i llega como Array.. y $1 no se remplaza..
si uso $i[1] consigo el valor que deberia tener $1..

que hago mal???

gracias
  #4 (permalink)  
Antiguo 20/01/2009, 20:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda con preg_replace!!!

Lee la documentación: http://www.php.net/preg_replace_callback

Por otro lado como te comente debes de usar una variable estatica para ir incrementando el contador.

Saludos
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 01:38.