Foros del Web » Programando para Internet » PHP »

str_replace() solo para palabras completas

Estas en el tema de str_replace() solo para palabras completas en el foro de PHP en Foros del Web. Hola a todos. Quiero reemplazar algunas palabras de mi texto con otro contenido, pero me ocurre lo siguiente: Código PHP: $resultado = str_replace ( "EFI" ...
  #1 (permalink)  
Antiguo 11/12/2004, 05:57
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
str_replace() solo para palabras completas

Hola a todos.

Quiero reemplazar algunas palabras de mi texto con otro contenido, pero me ocurre lo siguiente:

Código PHP:
$resultado=str_replace("EFI""Espec Federation Inc""La EFI es muy eficaz"); 
Yo quiero que eso me devuelva:
La Espec Federation Inc es muy eficaz.

Y me esta devolviendo:
La Espec Federation Inc es muy Espec Federation Inccaz.

¿Cómo puedo hacer para que tome únicamente las palabras completas? ¿Hay alguna función específica de PHP?

Un saludo!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #2 (permalink)  
Antiguo 11/12/2004, 06:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Expresiones regulares, tienen un caracter para indicar limite de palabra. Una palabra es una cadena de caracteres separada de la siguiente por uno o varios caracteres que separan palabras (espacios en blanco, caracteres que no pueden estar en palabras).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 11/12/2004, 11:16
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
Entonces, no puedo usar str_replace(), debo usar eregi_replace().

Queda algo asi como:

Código PHP:
$palabra="algo";
$reemplazo="otra cosa";
$cadena="esto es algo bonito de algodon";
$regexp="^[a-zñáéíóúüA-ZÑÁÉÍÓÚÜ]+$";
$cadena=eregi_replace($regexp,$reemplazo,$cadena); 
Había pensado algo asi como ^[a-zñáéíóúüA-ZÑÁÉÍÓÚÜ]+$, pero... entonces coincidiría cualquier palabra del texto. Yo quiero que solo coincida la palabra que se encuentra en la variable $palabra.

¿Cómo puedo hacer?
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.

Última edición por Takitei; 11/12/2004 a las 18:07
  #4 (permalink)  
Antiguo 11/12/2004, 21:18
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
Bueno, la respuesta a mi problema era algo asi como:

Código PHP:
$text preg_replace("/\balgo(s)?\b/i""otra cosa""esto es algo bonito de algodon"); 
Donde la i indica que es "case insensitive".
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:02.