2011-04-25 12 views
6

para mis propósitos que hice esto:búsqueda si existe una cadena en otra cadena

<?php 
$mystring = 'Gazole,'; 
$findme = 'Sans Plomb 95'; 
$pos = strpos($mystring, $findme); 

if ($pos >= 0) { 
    echo "The string '$findme' was found in the string '$mystring'"; 
    echo " and exists at position $pos"; 
} else { 
    echo "The string '$findme' was not found in the string '$mystring'"; 
} 
?> 

Sin embargo, siempre se ejecuta esta rama:

echo "The string '$findme' was found in the string '$mystring'"; 
echo " and exists at position $pos"; 

aunque la cadena estoy en busca de doesn ' t existe.

Por favor ayuda, thx de antemano :))

Respuesta

14

La forma correcta de hacerlo es:

if ($pos !== false) { 
    echo "The string '$findme' was found in the string '$mystring'"; 
    echo " and exists at position $pos"; 
} else { 
    echo "The string '$findme' was not found in the string '$mystring'"; 
} 

Véase el giant red warning en la documentación.

3

strpos devuelve un booleano false en caso de que no se encuentre la cadena. Su prueba debe ser $pos !== false en lugar de $pos >= 0.

Tenga en cuenta que los operadores de comparación estándar no consideran el tipo de operandos, por lo que false se fuerza a 0. Los operadores === y !== producen true solo si los tipos y valores de los operandos coinciden.

1

strpos() devuelve falso si no se encuentra la cadena. Cuando comprueba $ pos> = 0, está aceptando ese valor FALSO.

Prueba esto:

<?php 
$mystring = 'Gazole,'; 
$findme = 'Sans Plomb 95'; 
$pos = strpos($mystring, $findme); 


if ($pos !== false) { 
    echo "The string '$findme' was found in the string '$mystring'"; 
    echo " and exists at position $pos"; 
} else { 
     echo "The string '$findme' was not found in the string '$mystring'"; 

} 
?> 
1

hi método Malek strpos en php devolverá un valor lógico de valor falso cuando no se encuentra la cadena y si se encuentra que va a devolver la posición en int.

refieren este Link to study about strpos

0
if (strpos($mystring, $findme) !== false) { 
    echo 'true'; 
} 
Cuestiones relacionadas