Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con if y str_replace

Estas en el tema de Problemas con if y str_replace en el foro de PHP en Foros del Web. Tengo un pequeño problema que no se solucionar: Código PHP:                      $linea = "S: C" ;                      $vowels  = array( "s:" ,  "S:" ,  "S: " ,  "s: " ,  ...
  #1 (permalink)  
Antiguo 21/03/2013, 06:54
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Problemas con if y str_replace

Tengo un pequeño problema que no se solucionar:


Código PHP:
                     $linea="S: C";
                    
$vowels = array("s:""S:""S: ""s: ""S:  ""s:  ");
                    
$sustituto=str_replace($vowels""$linea);
                    
//Ponemos la solucion en mayuscula
                    
$sustituto=strtoupper($sustituto);
                    
//Comprobamos que la respuestas sean ABCDEF
                    
if($sustituto == "A" || $sustituto == "B" || $sustituto == "C" || $sustituto=="D" || $sustituto=="E" || $sustituto=="F")
                    {
                    echo 
"Hemos guardado la pregunta<br>";
                    }
                    else
                    {
                        echo 
"<br><br>NO HA GUARDADO POR QUE \$sustituto ES IGUAL A: ".$sustituto."<BR>";
                    } 
Por lo que veis en el código creo que tendrìa que cumplirse el if, pero sin embargo me imprime el else ">NO HA GUARDADO POR QUE \$sustituto ES IGUAL A: C".

¿Dónde está el fallo?
  #2 (permalink)  
Antiguo 21/03/2013, 07:01
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Problemas con if y str_replace

Inicialmente en el texto de $linia tienes "S: C" y el array de reemplazo es:


Código PHP:
Ver original
  1. array("s:", "S:", "S: ", "s: ", "S:  ", "s:  ")


Que es lo que pasa? Pues que va de uno en uno. Primero "s:", no encuentra nada y por tanto no substituye. Luego prueba con "S:" que lo encuentra y substituye dejando a $linia así " C". Luego ya el resto no se pueden aplicar y como resultado final te queda que $linia=" C" no $linia="C".

Prueba a definir el array de esta forma a ver si obtienes el resultado que querías:


Código PHP:
Ver original
  1. array("s:  ", "S:  ", "s: ", "S: ", "S:", "s:")
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 21/03/2013, 07:07
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Problemas con if y str_replace

O simplemente hacer trim()

Código PHP:
Ver original
  1. $sustituto=strtoupper(trim($sustituto));
  #4 (permalink)  
Antiguo 21/03/2013, 07:20
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Problemas con if y str_replace

Afirmativo, muchas gracias, la verdad es que ya andaba loco, muchas horas picando código y me quede atrapado en esto!

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 19:23.