Andiamo a fare qualcosa di leggermente più utile. Andremo a controllare che tipo di browser sta utilizzando la persona che visita le nostre pagine. Per fare questo si andrà a controllare la stringa dell'user agent che il browser invia come parte della richiesta HTTP. Quest'informazione viene inviata in una variabile. Le Variabili iniziano sempre con il simbolo del dollaro in PHP. La variabile alla quale ci riferiamo adesso è $_SERVER["HTTP_USER_AGENT"].
Nota:
$_SERVER è una variabile speciale riservata a PHP la quale contiene tutte le informazioni relative al Web Server. È conosciuta come Variabile autoglobale (o Superglobale). Per maggiori informazioni è possibile vedere la pagina del manuale relativa alle Variabili Autoglobali. Questo tipo di variabili è stato introdotto nella versione » 4.1.0 di PHP. Nelle versioni precedenti abbiamo utilizzato gli ormai vecchi array $HTTP_*_VARS, come $HTTP_SERVER_VARS. Anche se deprecate, queste variabili continuano ad esistere. (Potete guardare nelle note del vecchio codice.)
Per visualizzare questa variabile, dobbiamo semplicemente:
Example #1 Stampare a video una variable (un elemento d'Array)
<?php
echo $_SERVER["HTTP_USER_AGENT"];
?>
L'output (risultato) di questo script potrebbe essere:
Ci sono molti types (tipi) di variabili disponibili in PHP. Nell'esempio di sopra abbiamo stampato un elemento di un Array. Gli Array possono essere molto utili.
$_SERVER è soltanto una variabile che automaticamente viene resa diponibile da PHP. È possibile visualizzare una lunga lista nella sezione Variabili riservate del manuale oppure ottenere la lista completa cercando nell'output della funzione phpinfo() utilizzata nell'esempio della precedente sezione.
Si possono inserire istruzioni PHP multiple all'interno di un tag PHP e creare piccoli blocchi di codice che fanno più di un singolo echo. Per esempio, se si volesse controllare se l'utente usa Internet Explorer si potrebbe fare questo:
Example #2 Esempi usando le strutture di controllo e le funzioni
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Stai usando Internet Explorer<br />';
}
?>
L'output di esempio di questo script potrebbe essere:
Stai usando Internet Explorer<br />
Qui introduciamo un paio di nuovi concetti. Abbiamo l'istruzione if (se). Se avete una conoscenza con la sintassi di base usata dal linguaggio C, questo dovrebbe sembrare logico per voi. In caso contrario, dovreste probabilmente prendere qualsiasi libro introduttivo di PHP e leggere i primi capitoli, o leggere la parte del manuale relativa ai Riferimenti del Linguaggio.
Il secondo concetto che abbiamo introdotto era la chiamata alla funzione
strpos(). Questa è una funzione sviluppata in PHP
che cerca una stringa all'interno di un'altra stringa. In questo caso
abbiamo cercato 'MSIE' (cosiddetta occorrenza) all'interno della stringa
$_SERVER["HTTP_USER_AGENT"] (cosiddetta haystack). Se la stringa viene trovata all'interno dell'haystack,
la funzione restituisce la posizione dell'occorrenza
relativa all'inizio dell'haystack. Altrimenti, restituisce FALSE
.
Se non restituisce FALSE
, l'espressione if
viene valutata come TRUE
ed il codice all'interno dei relativi {braces} (sostegni) sarà
eseguito. Altrimenti, il codice non sarà eseguito. Sentitevi liberi di generare esempi
simili, con if,
else (altrimenti), ed altre
funzioni quali strtoupper() e strlen().
Ogni pagina del manuale, relativa a queste funzioni contiene anche degli
esempi pratici. Se non sei sicuro di come utilizzare queste funzioni, vorrai leggere le
pagine del manuale su come leggere una
definizione di funzione e la sezione sulle
funzioni PHP.
Possiamo fare un passo avanti e mostrarvi come potete entrare ed uscite dal modo PHP anche dall' interno di un blocco PHP:
Example #3 Intercalare i modi PHP e HTML
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() dovrebbe ritornare non-false</h3>
<b>Stai usando Internet Explorer</b>
<?php
} else {
?>
<h3>strpos() dovrebbe ritornare false</h3>
<b>Non stai usando Internet Explorer</b>
<?php
}
?>
L'output di esempio di questo script potrebbe essere:
<h3>strpos() dovrebbe ritornare non-false</h3> <b>Stai usando Internet Explorer</b>
Invece di usare la dichiarazione echo per fare l'output di qualcosa, saltiamo fuori dalla modalità PHP inviando soltanto HTML puro. Il punto importante da notare qui è che il flusso logico dello script rimane intatto. Solo uno dei blocchi di HTML finirà per essere inviato come risposta, dipendendo dal risultato di strpos(). In altre parole, dipende se la stringa MSIE viene trovata o meno.