Algo útil
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:
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Está usando Firefox.';
}
?>
Una salida de ejemplo de este script podría ser:
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.