Buscar cadena de texto dentro de otra. PHP

Iniciado por OssoH, 25 Febrero 2011, 19:40 PM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

Tengo el siguiente codigo :


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


y me devuelve FALSO

en cambio si :


  $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

#!drvy

Prueba con este:

Código (php) [Seleccionar]

<?php
$string 
'Hello world';
if(
stristr($string'Hello') == TRUE){
    echo 
'Cierto';
} else {
    echo 
'Falso';
}
?>




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

OssoH

He encontrado la solución.
El problema está que que la función stristr devuelve un string o false. NUNCA true.



~ Yoya ~

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().

Tipo de dato lógico o Booleano .

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Nakp

Código (php) [Seleccionar]
if(!stristr($string, 'Hello')){
    echo 'Falso';
} else {
    echo 'Cierto';
}


por que no usas return true/false? de hecho ya retorna un false por si acaso xD
Ojo por ojo, y el mundo acabará ciego.

OssoH

Muchas gracias por todos vuestros consejos!!
Me han sido de grandiisima utilidad.