Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: OssoH en 25 Febrero 2011, 19:40 pm



Título: Buscar cadena de texto dentro de otra. PHP
Publicado por: OssoH en 25 Febrero 2011, 19:40 pm
Tengo el siguiente codigo :

Código:
   $string = 'Hello World!';
  if(stristr($string, 'Hello') === TRUE) {
    echo 'CIERTO';
  } else
   echo 'FALSO';

y me devuelve FALSO

en cambio si :

Código:
   $string = 'Hello World!';
  if(stristr($string, 'Hello') === FALSE) {
    echo 'FALSO';
  } else
   echo 'CIERTO';

me devuelve CIERTO.

Alguien puede decirme porque el primer codigo no funciona y en cambio el segundo si.
Lo unico que quiero es comprobar si existe una cadena de texto dentro de otra y me estoy volviendo loco.
Gracias


Título: Re: Buscar cadena de texto dentro de otra. PHP
Publicado por: #!drvy en 25 Febrero 2011, 20:43 pm
Prueba con este:

Código
  1. <?php
  2. $string = 'Hello world';
  3. if(stristr($string, 'Hello') == TRUE){
  4.    echo 'Cierto';
  5. } else {
  6.    echo 'Falso';
  7. }
  8. ?>
  9.  
  10.  

Lo unico que cambia es que de tres(3) === pasa a dos(2).
Saludos


Título: Re: Buscar cadena de texto dentro de otra. PHP
Publicado por: OssoH en 25 Febrero 2011, 21:41 pm
He encontrado la solución.
El problema está que que la función stristr devuelve un string o false. NUNCA true.




Título: Re: Buscar cadena de texto dentro de otra. PHP
Publicado por: ~ Yoya ~ en 25 Febrero 2011, 22:57 pm
En el código el único error y problema que hay es lógico.

Estas usando ===, con estos estas diciendo que el valor debe ser exactamente igual y del mismo tipo de datos.
En el if estas comparando un dato tipo string con un booleano y por esa razón el if nunca se cumplirá.


Puedes saber el tipo de dato de un valor, utilizando la función gettype() (http://www.php.net/manual/es/function.gettype.php).

Tipo de dato lógico o Booleano  (http://es.wikipedia.org/wiki/Tipo_de_dato_l%C3%B3gico).

Saludos.


Título: Re: Buscar cadena de texto dentro de otra. PHP
Publicado por: Nakp en 26 Febrero 2011, 02:06 am
Código
  1. if(!stristr($string, 'Hello')){
  2.    echo 'Falso';
  3. } else {
  4.    echo 'Cierto';
  5. }

por que no usas return true/false? de hecho ya retorna un false por si acaso xD


Título: Re: Buscar cadena de texto dentro de otra. PHP
Publicado por: OssoH en 27 Febrero 2011, 21:16 pm
Muchas gracias por todos vuestros consejos!!
Me han sido de grandiisima utilidad.