Hagamos ahora algo que puede ser más útil. Vamos a
chequear qué clase de navegador web utiliza. Para hacerlo,
vamos a consultar la información que el navegador nos
envía como parte de su petición HTTP. Esta
información es guardada en una variable. Las variables
siempre comienzan con un signo de dólar ("$") en PHP. La
variable que vamos a utilizar en esta situación
es $_SERVER["HTTP_USER_AGENT"].
Nota:
$_SERVER es una
variable reservada por PHP que contiene toda la
información del servidor web. Es conocida como Autoglobal
(o Superglobal).
Consulte el manual en su sección titulada Autoglobales
para mas información. Éstas son variables
especiales que fueron introducidas en la versión 4.1.0 de PHP. Antes
podíamos usar las
matrices $HTTP_*_VARS, tales como
$HTTP_SERVER_VARS. Aunque éstas han
sido marcadas como obsoletas, tales matrices todavía
existen. (También puede echar un vistazo a las notas
relacionadas con el código antiguo.)
Para poder ver esta variable solo necesita:
Ejemplo 2-2. Impresión de una variable (elemento de la
matriz)
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
|
Un ejemplo de los resultados de este programa sería:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) |
|
Hay muchos tipos de
variables en PHP. En el ejemplo anterior imprimimos una matriz. Las matrices pueden
ser muy útiles.
$_SERVER es simplemente una variable que se
encuentra disponible automáticamente para usted en
PHP. Puede encontrar una lista en la sección titulada Variables Reservadas del
manual, o puede generar una lista completa creando un archivo como
el presentado a continuación:
Ejemplo 2-3. Consultar todas las variables predefinidas
con phpinfo() |
Si abre este archivo con su navegador, puede ver una página
con información acerca de PHP, junto a una lista de todas
las variables que puede usar.
Puede usar más de un declaración PHP dentro de una
etiqueta PHP, y crear pequeños segmentos de código
que pueden hacer más que un "echo". Por ejemplo, si
quisiéramos detectar el uso de "Internet Explorer",
haríamos algo así:
Ejemplo 2-4. Ejemplos de uso de estructuras de control
y funciones
<?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { echo "Está usando Internet Explorer<br />"; } ?>
|
Un ejemplo de los resultado del script puede ser:
Está usando Internet Explorer<br /> |
|
A continuación introduciremos un par de conceptos
nuevos. Tenemos una declaración
"if". Si está
familiarizado con la sintaxis básica del lenguaje "C", esto
se vera lógico, Pero si no entiende "C", u otros lenguajes
de programación donde encuentra la sintaxis usada
anteriormente, probablemente debería conseguir un libro que
le introduzca mejor a PHP, y lea los primeros capítulos, o
también puede ver la parte del manual titulada Referencia del lenguaje. Puedes
encontrar una lista de libros sobre PHP en http://www.php.net/books.php.
El segundo concepto que introducimos fue la función llamada
strstr(). strstr() es una
función integrada de PHP que busca un cadena dentro de otra
cadena más larga. En el caso anterior estamos buscando
"MSIE" dentro de
$_SERVER["HTTP_USER_AGENT"]. Si la cadena fue
encontrada, la función devolverá verdadero
("TRUE"), la declaración
"if" se evalúa
a verdadero ("TRUE") y el código adentro de las llaves {}
es ejecutado. De otra manera no resulta ejecutado. Tómese
la libertad de crear ejemplos similares usando "if", "else" ("de otra
manera"), y otras funciones
como strtoupper()
y strlen(). Cada página del manual
contiene ejemplos que puede usar. Si no está seguro sobre
el modo de uso éstas funciones, es recomendable que lea las
páginas del manual tituladas Cómo leer una definición
de función y la sección relacionada a Funciones en PHP
Podemos continuar y demostrar cómo puede saltar adentro y
afuera del modo PHP en el medio de un bloque de código.
Ejemplo 2-5. Mezcla de los modos HTML y PHP
<?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> <h3>strstr debe haber devuelto verdadero</h3> <center><b>Está usando Internet Explorer</b></center> <?php } else { ?> <h3>strstr debió devolver falso</h3> <center><b>No está usando Internet Explorer</b></center> <?php } ?>
|
Un ejemplo de los resultados de este script puede ser:
<h3>strstr debe haber devuelto verdadero </h3>
<center><b>Está usando Internet Explorer</b></center> |
|
En vez de usar una sentencia PHP "echo" para demostrar algo,
saltamos fuera del código PHP y escribimos HTML puro. Este
es un punto muy importante y potente que debemos observar
aquí, y es que la fluidez lógica del script
está intacta. Sólamente las partes donde hay HTML
serán enviadas a su navegador dependiendo de los resultados
que strstr() devuelve (si fue verdadero
[TRUE], o falso [FALSE]). En otras palabras, si la cadena
MSIE fue encontrada o no.