Una cosa más útil que querrá hacer es ver si una cadena está dentro de otra. Por ejemplo, puede obtener qué navegador tiene el usuario con esto:
$ agente = $ _SERVER["HTTP_USER_AGENT"];
imprimir $ agente;
Pruébelo y vea qué se imprime. Debería encontrar que se imprime una cadena bastante larga.
Si está probando qué navegador tiene el usuario, puede usar una función de cadena para buscar una cadena corta dentro de esta muy larga. Una función de cadena de PHP que puede utilizar es strpos (). La sintaxis de la strpos la función es:
strpos string_to_search, string_to_find, inicio )
Debe proporcionar al menos los dos primeros. El tercero, inicio, es opcional. He aquí un ejemplo sencillo.
$ full_name = "bill gates";
$ posición_letra = strpos ($ nombre_completo, "b");
imprimir $ posición_carta;
Cuando ejecuta el script, se devuelve un valor de 0. Esto se debe a que PHP considera que el primer carácter de la cadena está en la posición 0, el segundo carácter en la posición 1, el tercero en la posición 2, etc. Ya que estábamos buscando la letra "b", y "bill gates" comienza con esto letra, se devuelve un valor de 0.
Intenta cambiar strpos () de esto:
$ posición_letra = strpos ($ nombre_completo, "B" );
a esto:
$ posición_letra = strpos ($ nombre_completo, "B" );
¿Qué sucede cuando ejecuta el script? ¡Nada! Al menos, no recuperas ningún valor. Eso es porque si strpos no puede encontrar sus personajes, devuelve un valor de falso. Se puede probar un valor de falso en PHP utilizando el operador triple igual. Como esto:
$ full_name = "puerta de entrada";
$ posición_letra = strpos ($ nombre_completo, "B");
if ($ letter_position === false) {
imprimir "Carácter no encontrado";
}
demás {
imprimir "Carácter encontrado";
}
El operador triple igual ( === ) no solo verifica un valor sino qué tipo de valor es: entero, cadena, booleano, etc. Si no se encuentra una cadena, debe usar este operador, en caso de que el carácter que está buscando esté en la posición 0. PHP es un poco peculiar con ceros. Parece que también tienen un valor falso. ¡Pero puede ser un tipo diferente de falsedad! Entonces usa ===.
Aquí hay un script que verifica cuál de los dos navegadores tiene un usuario:
$ agente = $ _SERVER['HTTP_USER_AGENT'];
if (strpos (strtoupper ($ agente), 'MSIE')) {
imprimir "Internet Explorer";
}
else if (strpos (strtoupper ($ agente), 'FIREFOX')) {
imprimir "Firefox";
}
demás {
imprimir $ agente;
}
El script anterior usa dos de las funciones de cadena que ha conocido: strpos () y strtoupper (). ¡Vea si puede averiguar qué está pasando!
En la siguiente parte, aprenderá a dividir una línea de texto. Deberá hacer esto cuando trabaje, por ejemplo, con archivos de texto.
<- Atrás una página | Pasar a la siguiente parte ->
Volver a la página de contenido de PHP




