Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 :


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