Foros del Web » Programando para Internet » PHP »

preg_replace y array

Estas en el tema de preg_replace y array en el foro de PHP en Foros del Web. hola gente, tengo un problema con preg_replace de palabras completas y un arreglo este es mi codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original //array con ...
  #1 (permalink)  
Antiguo 22/02/2013, 13:43
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
preg_replace y array

hola gente,
tengo un problema con preg_replace de palabras completas y un arreglo este es mi codigo:
Código PHP:
Ver original
  1. //array con las palabras que quiero eliminar
  2. $censored_words = $this->words->list_words();
  3.  
  4. //string donde estan las palabras a eliminar
  5. $titulo = strtolower(generate_title($productos[$i]));
  6.  
  7. //recorro el array e intento reemplazar las palabras
  8. for($j=0;$j<count($censored_words);$j++){
  9.                 $palabra = $censored_words[$j]['name'];
  10.                 $replace = preg_replace( '/'.$palabra.'(s)?\b/i','',$titulo);
  11.             }
Bien este código no funciona, no me hace nada, ahroa si yo cambio la linea del preg_replace por:
Código PHP:
Ver original
  1. $replace = preg_replace( '/Rejoles(s)?\b/i','',$titulo);
encontes ahi funciona bien.
Lo que no entiendo es porque funciona con el código "hardcodeado" y no cuando le paso la variable.
Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 22/02/2013, 13:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_replace y array

Pues si no activas el reporte de errores es imposible adivinar si sucede algo mal, ¿no te parece?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/02/2013, 14:03
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: preg_replace y array

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues si no activas el reporte de errores es imposible adivinar si sucede algo mal, ¿no te parece?
es que no me duelve ningun error, directamente no me hace el reemplazo de las palabras, cuando imprimo el texto me devuelve el mismo que el original. Y tengo activado los errores ;)
  #4 (permalink)  
Antiguo 22/02/2013, 14:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_replace y array

Pues crea las expresiones, asígnalas a una variable, imprime el valor para que veas que se genera, etc, etc.

No puedo entender por qué no depuras, a simple vista es imposible determinar un error, manos a la obra.

Eso se debe hacer mucho antes de abrir cualquier tema, para variar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/02/2013, 14:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: preg_replace y array

¿Y probaste a ver si en $palabra realmente se almacenaba la palabra que querías?
  #6 (permalink)  
Antiguo 22/02/2013, 14:14
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: preg_replace y array

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues crea las expresiones, asígnalas a una variable, imprime el valor para que veas que se genera, etc, etc.

No puedo entender por qué no depuras, a simple vista es imposible determinar un error, manos a la obra.

Eso se debe hacer mucho antes de abrir cualquier tema, para variar.
Ya hace como dos dias que estoy depurando jajaja por eso recurri aca como ultimo recurso, esto es lo que me devuelve si le meto "echo" y "print_r"

Código:
Array
(
    [0] => Array
        (
            [name] => anillo
        )

    [1] => Array
        (
            [name] => bolsa
        )

    [2] => Array
        (
            [name] => joyeria
        )

    [3] => Array
        (
            [name] => vendo
        )

)

titulo:
bolsas empaques gamuza gamufaxa joyeria relojeria bijouterie alhajas anillos  bolsitas

//imprimo la palabra en el for
palabra: anillo
palabra: bolsa
palabra: joyeria
palabra: vendo

replace:
bolsas empaques gamuza gamufaxa joyeria relojeria bijouterie alhajas anillos  bolsitas
  #7 (permalink)  
Antiguo 22/02/2013, 14:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_replace y array

Pero no veo como es que quedan las expresiones formadas, eso es clave para intentar entender.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 22/02/2013, 14:18
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: preg_replace y array

Cita:
Iniciado por pateketrueke Ver Mensaje
Pero no veo como es que quedan las expresiones formadas, eso es clave para intentar entender.
me perdi amigo jaja, te referis a esto:
'/'.$palabra.'(s)?\b/i'
  #9 (permalink)  
Antiguo 22/02/2013, 14:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_replace y array

Si, imprime esas expresiones también para que todos podamos ver lo que resultan.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 22/02/2013, 14:22
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: preg_replace y array

Código:
palabra: anillo
exprecion:/anillo(s)?\b/i
palabra: bolsa
exprecion:/bolsa(s)?\b/i
palabra: joyeria
exprecion:/joyeria(s)?\b/i
palabra: vendo
exprecion:/vendo(s)?\b/i
eso querias ver?
  #11 (permalink)  
Antiguo 22/02/2013, 14:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_replace y array

Pues si, y entonces, ¿usando esas expresiones no funciona?

Las veo completamente válidas, lo único que veo mal entonces es que asignas el resultado del reemplazo a $replace y usas como entrada $titulo, eso explicaría porque al final $titulo queda intacto.

Debes sobreescribir el valor de $titulo por cada reemplazo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 22/02/2013, 14:47
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: preg_replace y array

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues si, y entonces, ¿usando esas expresiones no funciona?

Las veo completamente válidas, lo único que veo mal entonces es que asignas el resultado del reemplazo a $replace y usas como entrada $titulo, eso explicaría porque al final $titulo queda intacto.

Debes sobreescribir el valor de $titulo por cada reemplazo.
Dos dias matandome con esto y era lo que me indicaste..... me haría pisar las partes bajas por una manda de toro de los miura jajajaj.

Gracias amigo!

Etiquetas: Ninguno
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 13:34.