Foros del Web » Programando para Internet » PHP »

Uso de str_replace y preg_replace

Estas en el tema de Uso de str_replace y preg_replace en el foro de PHP en Foros del Web. Hola amigos, Os explico un poco mi duda: Hasta ahora he estado usando este codigo para sustituir ciertas cadenas por otras: Código PHP: $keysoriginal  = array ( ...
  #1 (permalink)  
Antiguo 20/05/2011, 14:43
 
Fecha de Ingreso: abril-2010
Mensajes: 86
Antigüedad: 14 años, 6 meses
Puntos: 0
Uso de str_replace y preg_replace

Hola amigos,
Os explico un poco mi duda:

Hasta ahora he estado usando este codigo para sustituir ciertas cadenas por otras:

Código PHP:
$keysoriginal = array ("pera","melon");
$keysdefinitivas = array ("manzana","jamon");
$nuevotexto str_replace($keysoriginal$keydefinitivas$textoriginal); 
De modo que las palabras pera o melon se cambiaban por manana y jamon respectivamente.

Ahora lo que busco es que esto suceda SOLO para palabras completas, hasta ahora si existia una palabra como espera se cambiaba por esmanzana (esto no lo quiero)

Por eso he encontrado por ai la funcion preg_replace, pero al usarlo de este modo

Código PHP:
$keysoriginal = array ("pera","melon");
$keysdefinitivas = array ("manzana","jamon");
$nuevotexto preg_replace($keysoriginal$keydefinitivas$textoriginal); 
No funciona, no se que hago mal.... y si no lo sabeis, ¿sabeis como hacer lo que busco? (es importante porder usar arrays)

Un saludo y gracias a todos !!
  #2 (permalink)  
Antiguo 20/05/2011, 14:50
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 3 meses
Puntos: 87
Respuesta: Uso de str_replace y preg_replace

te recomiendo que leas este aporte http://www.forosdelweb.com/f18/aport...s-pcre-646110/.

algo así te podría funcionar:

Código PHP:
Ver original
  1. $keysoriginal = array ("/(?<!\w)pera(?!\w)/","/(?<!\w)melon(?!\w)/");
  2. $keydefinitivas = array ("manzana","jamon");
  3. $nuevotexto = preg_replace($keysoriginal, $keydefinitivas, $textoriginal);

Saludos
  #3 (permalink)  
Antiguo 20/05/2011, 14:55
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Uso de str_replace y preg_replace

pues si quieres palabras completas no seria mas simple agregarle un espacio antes y después ?...

Código PHP:
$keysoriginal = array (" pera "," melon ");  // con espacios :D
$keysdefinitivas = array (" manzana "," jamon "); 
$nuevotexto str_replace($keysoriginal$keydefinitivas$textoriginal); 
saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 20/05/2011, 14:56
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Uso de str_replace y preg_replace

podrías agregarle espacio

Código PHP:
Ver original
  1. $keysoriginal = array (" pera "," melon ");
  2. $keysdefinitivas = array (" manzana "," jamon ");
  3. $nuevotexto = str_replace($keysoriginal, $keydefinitivas, $textoriginal);

hidek1 se me adelanto XD
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 20/05/2011, 15:07
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años, 6 meses
Puntos: 11
Respuesta: Uso de str_replace y preg_replace

Cita:
Iniciado por quike88 Ver Mensaje
te recomiendo que leas este aporte [URL="http://www.forosdelweb.com/f18/aporte-expresiones-pcre-646110/"]http://www.forosdelweb.com/f18/aporte-expresiones-pcre-646110/[/URL].

algo así te podría funcionar:

Código PHP:
Ver original
  1. $keysoriginal = array ("/(?<!\w)pera(?!\w)/","/(?<!\w)melon(?!\w)/");
  2. $keydefinitivas = array ("manzana","jamon");
  3. $nuevotexto = preg_replace($keysoriginal, $keydefinitivas, $textoriginal);

Saludos
------------------------------------------------------------------------------------------------------------

vasta con el espacio así no te complicas la existencia haciendo eso
  #6 (permalink)  
Antiguo 20/05/2011, 15:44
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 3 meses
Puntos: 87
Respuesta: Uso de str_replace y preg_replace

Cita:
Iniciado por xlos_mas_pro Ver Mensaje
------------------------------------------------------------------------------------------------------------

vasta con el espacio así no te complicas la existencia haciendo eso
Puede que si, pero si tiene una coma a lado, o es el inicio o fin de la oración, o esta entre paréntesis y cosas así, con un espacio no bastaría.

Un saludo
  #7 (permalink)  
Antiguo 20/05/2011, 17:04
 
Fecha de Ingreso: abril-2010
Mensajes: 86
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Uso de str_replace y preg_replace

Gracias amigos, voy a probar y les cuento !!

Etiquetas: preg_replace, str_replace
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 10:11.