Foros del Web » Programando para Internet » PHP »

problemas al usar str_replace

Estas en el tema de problemas al usar str_replace en el foro de PHP en Foros del Web. hola, tengo en mi script un reeemplazo de palabras prohivilas las cuales tengo guaudadas en pal_bloqd.txt me pregunto por que no se reemplaza si todo ...
  #1 (permalink)  
Antiguo 07/01/2008, 17:11
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 4 meses
Puntos: 3
problemas al usar str_replace

hola, tengo en mi script un reeemplazo de palabras prohivilas las cuales tengo guaudadas en pal_bloqd.txt
me pregunto por que no se reemplaza si todo el script esta bien

$infm= "esta es la cadena de texto";
function reemplazo($infm){
$bloqueadas=file_get_contents ("liib/pal_bloqd.txt");
$arrbloqueadas=explode("\n",$bloqueadas);
$i=0;
//comparamos la cadena
while($arrbloqueadas[$i]){
$pl=$arrbloqueadas[$i];
$plbr=str_replace ("$pl", "", $infm);
echo ">>>>$pl<<<<------>$plbr<br>";
$i++;
}
return $plbr;
}


grax
  #2 (permalink)  
Antiguo 07/01/2008, 18:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: problemas al usar str_replace

Tu problema radica en que los diferentes SO hacen los saltos de linea de forma diferente. Así, Windows lo hace con \r\n, Unix con \r y Mac con \n

Mejor haz algo asi:
Código PHP:
function reemplazo($infm){
    
$bloqueadas file_get_contents ("liib/pal_bloqd.txt");
 
    
// Esto porque los diferentes SO tienen diferentes 
    // formas de hacer los saltos de linea
    
$bloqueadas str_replace(array("\r\n","\n","\r"),"\n",$bloqueadas);
 
    
$bloqueadas explode("\n",$bloqueadas);
 
    
//str_replace() tambien acepta arrays como parámetros, 
    //de manera que no es necesario hacer un bucle
    
return str_replace($bloqueadas,"",$infm);
}
 
echo 
reemplazo("Estas palabras son indebidas, estas no"); 
Un saludo,
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 12:16.