Foros del Web » Programando para Internet » PHP »

Detectar espacios

Estas en el tema de Detectar espacios en el foro de PHP en Foros del Web. Mi duda es muy simple ...alguien tiene alguna rutinilla para detectar que un string contiene un espacio...
  #1 (permalink)  
Antiguo 04/06/2003, 22:47
Avatar de kx_2002  
Fecha de Ingreso: noviembre-2002
Mensajes: 29
Antigüedad: 22 años
Puntos: 0
Detectar espacios

Mi duda es muy simple ...alguien tiene alguna rutinilla para detectar que un string contiene un espacio

  #2 (permalink)  
Antiguo 04/06/2003, 23:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Puedes usar strpos() .. te delvolverá la posición del caracter que especifiques .. si es > 0 ya sabes que existe ..

Sería:

Código PHP:
<?
$tustring
="bla blabla";
if (
strpos($tustring" ") > 0){
  echo 
"tiene espacios<br>";
} else {
  echo 
"no tiene espacios<br>";
}
?>

También lo puedes usar así:

Código PHP:
<?

$tustring
="bla blabla";

$pos=strpos($tustring" ");
if (
$pos === true) {
  echo 
"tiene espacios";
} else {
  echo 
"no tiene espacios";
}
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 05/06/2003, 09:42
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
MMmm... Cluster, esas funciones tienen bugs (creo).
La primera falla si $tustring contiene un espacio al principio de la cadena, pues en ese caso strpos() devuelve 0 como posicion del caracter espacio. Fijate en el cuadrito alarillo de Warning en el manual:
Cita:
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
Y la segunda directamente no funciona, porque usas === y un int no es igual a un bool.
Yo haria esto:
Código PHP:
$tustring " abcde";
$pos strpos($tustring" ");
if (
$pos !== false) {
  echo 
"tiene espacios";
} else {
  echo 
"no tiene espacios";

Creo que ahora va....
Saludos!
  #4 (permalink)  
Antiguo 05/06/2003, 10:46
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola a todos.

Creo que el código de Cluster funcionaría con solo un pequeño cambio:

if (strpos($tustring, " ") >= 0){

Espero no equivocarme. Saludos,
  #5 (permalink)  
Antiguo 05/06/2003, 11:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si, .. el primer ejemplo no funciona si uso > .. como operador sólo .. debe usarse >= pues las cadenas empiezan por la posición 0 a enumerar sus caracteres .. (se me había pasado ese punto xD) .. Thanks JavierB ...


Y la segunda opción .. pues es cierto fran86 .. (no lo probé y eso es lo que pasa por hacer las cosas a la rápida xDD) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 05/06/2003, 12:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
No hay de que, Cluster.

Me sonaba que podía ser eso, porque en JavaScript también empieza por cero, asi que probé y funcionó.

Saludos,
  #7 (permalink)  
Antiguo 05/06/2003, 17:59
Avatar de kx_2002  
Fecha de Ingreso: noviembre-2002
Mensajes: 29
Antigüedad: 22 años
Puntos: 0
gracias

Con eso tuve el bug + el remedio gracias.

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 14:11.