Algo útil
Hagamos ahora algo que puede ser más útil. Vamos a comprobar
qué tipo de navegador está utilizando el usuario visitante.
Para hacerlo, vamos a comprobar el string del agente de usuario que el navegador
envía como parte de la petición HTTP. Esta información es almacenada en una variable. En PHP, las variables siempre
comienzan con un signo de dólar. La variable que nos interesa ahora es
$_SERVER['HTTP_USER_AGENT'].
Nota:
$_SERVER es una variable especial reservada
por PHP que contiene toda la información del servidor web.
Es conocida como una superglobal. Consulte la página del manual sobre
Superglobales
para más información.
Para mostrar esta variable, se puede hacer simplemente:
Ejemplo #1 Imprimir una variable (elemento de array)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Un ejemplo del resultado de este script podría ser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Hay muchos tipos de
variables en PHP. En el ejemplo anterior se muestra un elemento
de un Array.
Los arrays pueden ser muy útiles.
$_SERVER es simplemente una variable que se encuentra
disponible automáticamente en PHP. Se puede encontrar una lista en la
sección Variables reservadas
del manual, o se puede obtener una lista completa observando
la salida de la función phpinfo() usada en el
ejemplo de la sección anterior.
Puede usar múltiples sentencias de PHP dentro de una etiqueta de PHP y crear
pequeños bloques de código que realicen más que un simple 'echo'.
Por ejemplo, si se quisiera detectar el uso de Internet Explorer,
se podría hacer algo así:
Aquí hemos introducido un par de conceptos nuevos. Tenemos
una sentencia if.
Si está familiarizado con la sintaxis básica del lenguaje C,
debería parecerle lógico. De lo contrario, probablemente debería
conseguir un libro que le introduzca a PHP, y leer el primer
par de capítulos, o leer la parte del manual titulada
Referencia del lenguaje.
El segundo concepto que introducimos fue la función llamada a
strpos(). strpos() es una función
integrada en PHP que busca un string dentro de otro. En este caso estamos
buscando 'MSIE'
(también llamado aguja) dentro de
$_SERVER['HTTP_USER_AGENT'] (también llamado pajar).
Si el string se encuentra dentro del pajar, la función devuelve la posición
de la aguja relativa al inicio del pajar. De lo contrario,
devuelve false
. Si no devuelve false
, la expresión if se evalúa como true
y se ejecuta el código entre llaves {}. De lo contrario, el código no
será ejecutado. Tómese la libertad de crear ejemplos similares,
con if,
else, y otras
funciones como strtoupper() y
strlen(). Cada página del manual relacionada también
contiene ejemplos. Si no está seguro de cómo usar estas funciones, es recomendable
que lea las páginas del manual sobre Cómo interpretar
una definición de función y la sección sobre Funciones de PHP.
Podemos dar un paso más y mostrar cómo se puede entrar y salir
del modo PHP incluso en medio de un bloque de código de PHP:
Ejemplo #3 Mezcla de los modos HTML y PHP
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() debe haber devuelto no falso</h3>
<p>Está usando Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() debe haber devuelto falso</h3>
<p>No está usando Internet Explorer</p>
<?php
}
?>
Un ejemplo del resultado del script podría ser:
<h3>strpos() debe haber devuelto no falso</h3>
<p>Está usando Internet Explorer</p>
En vez de usar una sentencia echo de PHP para mostrar algo, salimos
del modo PHP y enviamos solamente HTML. Este es un punto muy importante y potente
que se ha de observar aquí, y es que la fluidez lógica del script permanece intacta.
Solamente uno de los bloques HTML terminará siendo enviado al navegador dependiendo
del resultado de strpos(). En otras palabras, depende de si
el string MSIE
fue encontrada o no.