Ahora hagamos algo más útil. Vamos a comprobar qué tipo de navegador está usando el visitante. Para ello, comprobamos la cadena del agente de usuario que el navegador envía como parte de la petición HTTP. Esta información se almacena en una variable. Las variables siempre comienzan con un signo de dólar en PHP. La variable que nos interesa ahora es $_SERVER['HTTP_USER_AGENT'].
Nota:
$_SERVER es una variable especial reservada de PHP que contiene toda la información del servidor web. Se la conoce como superglobal. Consulte la página relacionada del manual sobre superglobals para obtener más información.
Para mostrar esta variable, puede hacer simplemente:
Ejemplo #1 Mostrar una variable (elemento de array)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>Una salida de ejemplo de este script podría ser:
Mozilla/5.0 (Linux) Firefox/112.0
Hay muchos tipos de variables disponibles en PHP. En el ejemplo anterior imprimimos un elemento de un array variable. Los arrays pueden ser muy útiles.
$_SERVER es solo una variable que PHP hace automáticamente disponible. Puede ver una lista en la sección Variables Reservadas del manual o puede obtener una lista completa de ellas mirando la salida de la función phpinfo() usada en el ejemplo de la sección anterior.
Puede poner múltiples sentencias PHP dentro de una etiqueta PHP y crear pequeños bloques de código que hacen más que un simple echo. Por ejemplo, si quiere comprobar si se está usando Firefox puede hacer esto:
Ejemplo #2 Ejemplo usando estructuras de control y funciones
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Está usando Firefox.';
}
?>Una salida de ejemplo de este script podría ser:
Está usando Firefox.
Aquí introducimos un par de conceptos nuevos. Tenemos una sentencia if. Si está familiarizado con la sintaxis básica usada por el lenguaje C, esto debería parecerle lógico. De lo contrario, debería leer un libro introductorio de PHP o los primeros capítulos, o leer la parte de Referencia del Lenguaje del manual.
El segundo concepto que introdujimos fue la llamada a la función
str_contains(). str_contains() es una
función integrada en PHP que determina si una cadena dada contiene otra
cadena. En este caso estamos buscando 'Firefox' (la
llamada aguja) dentro de $_SERVER['HTTP_USER_AGENT']
(la llamada pajar). Si la aguja se encuentra dentro del pajar, la función
devuelve true. De lo contrario, devuelve false. Si devuelve true, la
expresión if se evalúa como
true y se ejecuta el código dentro de sus {llaves}. De lo contrario, el
código no se ejecuta. Siéntase libre de crear ejemplos similares, con
if,
else, y otras funciones
como strtoupper() y strlen().
Cada página relacionada del manual contiene ejemplos también. Si no está
seguro de cómo usar funciones, querrá leer tanto la página del manual sobre
cómo leer una definición de función como
la sección sobre funciones de PHP.
Podemos llevar esto un paso más allá y mostrar cómo puede entrar y salir del modo PHP incluso en medio de un bloque PHP:
Ejemplo #3 Mezclar ambos modos HTML y PHP
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() devolvió true</h3>
<p>Está usando Firefox</p>
<?php
} else {
?>
<h3>str_contains() devolvió false</h3>
<p>No está usando Firefox</p>
<?php
}
?>Una salida de ejemplo de este script podría ser:
<h3>str_contains() devolvió true</h3> <p>Está usando Firefox</p>
En lugar de usar una sentencia echo de PHP para mostrar algo, salimos
del modo PHP y enviamos directamente HTML. El punto importante y potente
a notar aquí es que el flujo lógico del script permanece intacto. Solo
uno de los bloques HTML terminará siendo enviado al espectador dependiendo
del resultado de str_contains(). En otras palabras,
depende de si la cadena Firefox fue encontrada o no.