Foros del Web » Programación web » PHP »

reemplazar palabra por otra

Estas en el tema de reemplazar palabra por otra en el foro de PHP en Foros del Web. necesito lo siguiente: $var = "hola a todos los colegas de la comunidad" convertir a : $var = "hola a todos los cole[X]gas de la ...
  #1 (permalink)  
Antiguo 26/12/2009, 15:34
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 4 años, 3 meses
Puntos: 0
reemplazar palabra por otra

necesito lo siguiente:

$var = "hola a todos los colegas de la comunidad"

convertir a :

$var = "hola a todos los cole[X]gas de la comunidad"

la idea es insertar el texto [X] dentro la palabra "colegas" , sin importar mayusculas y minusculas y en que posicion este. asi por ejemplo:

$var = "hola a todos los de la cole[X]gas comunidad"
$var = "hola cOle[X]Aas a todos los de la comunidad"
$var = "hola a todos los de la comunidad COLE[X]GASAS"

y que funcione para varias palabras , por ejemplo.

colega -> col[X]ega
monitor -> moni[X]tor
kingdom -> kin[X]gdom
etc etc etc
  #2 (permalink)  
Antiguo 26/12/2009, 17:15
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 4 años, 5 meses
Puntos: 65
Respuesta: reemplazar palabra por otra

A ver si funciona esto...

Código PHP:
<?php
$var 
"hola a todos los colegas de la comunidad";

echo 
str_replace('colegas','cole[X]gas'strtolower($var));
?>
__________________
HV Studio
Diseño y desarrollo web

Última edición por jackson666; 26/12/2009 a las 17:26
  #3 (permalink)  
Antiguo 26/12/2009, 18:21
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 4 años, 3 meses
Puntos: 0
Respuesta: reemplazar palabra por otra

gracias por la atencion.

pero hice este codigo, y funciona como queria, espero que todo salga bien

function reemplzpalabras ($texto){
$lista_palabras = array('colega','monitor');
for($i=0;$i<count($lista_palabras);$i++){
$palabra = $lista_palabras[$i];
$continuawhile = true;
while($continuawhile){
$posicion = stripos($texto,$palabra);
if($posicion){
$texto = substr($texto, 0, $posicion+3 ) . "[X]" . substr($texto, $posicion+3 );
}else{
$continuawhile = false;
}
}
}
return $texto;
}
  #4 (permalink)  
Antiguo 26/12/2009, 19:15
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 4 años, 5 meses
Puntos: 65
Respuesta: reemplazar palabra por otra

Si te funciona, esat bien entonces! Lo unico, un poquito largo para lo que querias hacer... Pero bueno, anda q es lo que importa!

Estas seguro que te sirve para cualquier palabra esa funcion?
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 26/12/2009, 19:28
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 4 años, 3 meses
Puntos: 0
Respuesta: reemplazar palabra por otra

si por que, la solucion que distes, reemplaza, y eso puede provocar un problema si la palabra estuviera asi : "Colegas" tu codigo la reemplazaria por cole[X]gas , se perderia el atributo de la C en mayuscula.

en el codigo encontre un problema, cuando encuentra la palabra al principio y la funcion stripos devuelve 0 , y el if lo considera false. tuve que cambiar:

if($posicion){
por
if($posicion!==false){

si encuentras una solucion mas corta, avisas xD

Código PHP:
function reemplzpalabras ($texto){
    
$lista_palabras = array('colega','monitor');
    for(
$i=0;$i<count($lista_palabras);$i++){
        
$palabra $lista_palabras[$i];
        
$continuawhile true;
        while(
$continuawhile){
            
$posicion stripos($texto,$palabra);
            if(
$posicion!==false){
                
$texto substr($texto0$posicion+) . "[X]" substr($texto$posicion+); 
            }else{
                
$continuawhile false;
            }
        }
    }
    return 
$texto;

  #6 (permalink)  
Antiguo 26/12/2009, 19:31
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 4 años, 5 meses
Puntos: 65
Respuesta: reemplazar palabra por otra

Si, a lo que yo voy es: hacer una funcion solo xa 2 palabras... O sea, si te soluciono el problema, pero tal vez se puedo hacer un poco mas generica no??

No se, esto al margen de tu ex-problema... Tal vez el dia de mañana te sirva

Suerte
__________________
HV Studio
Diseño y desarrollo web
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 16:05.
SEO by vBSEO 3.3.2