
L’ultima volta abbiamo visto i commenti condizionali per Internet Explorer ed oggi vi mostrerò come poter riconoscere il browser ed il sistema operativo attraverso l’uso del php.
Un esempio pratico
<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
$win = strpos($ua, 'Windows') ? true : false; // Windows
$chrome = strpos($ua, 'Chrome') ? true : false; // Google Chrome
if($chrome) {
if($win) {
echo 'Sono Google Chrome su Windows';
}
else {
echo 'Sono Google Chrome su Mac';
}
}
else {
echo 'Non sono Google Chrome';
}
?>
L’esempio qui sopra stamperà a video se state utilizzando o meno Google Chrome ed eventualmente su quale sistema operativo, se Windows o Mac.
Come funziona
Il trucco sta tutto in questa riga:
$ua = $_SERVER['HTTP_USER_AGENT'];
$_SERVER è un array contenente un’infinità di informazioni, tra cui quelle relative al sistema operativo ed al browser utilizzati per visualizzare la pagina corrente.
Utilizzando l’opzione HTTP_USER_AGENT estrarremo solo le informazioni che ci interessano, salvandole nella variabile $ua.
Individuare il sistema operativo
Le seguenti righe di codice servono per poter ricavare il sistema operativo in uso:
// ---- DESKTOP ---- // Linux $linux = strpos($ua, 'Linux') ? true : false; // Macintosh $mac = strpos($ua, 'Macintosh') ? true : false; // Windows $win = strpos($ua, 'Windows') ? true : false; // ---- MOBILE ---- // Android $android = strpos($ua, 'Android') ? true : false; // BlackBerry $blackberry = strpos($ua, 'BlackBerry') ? true : false; // BlackBerry Tablet $rim = strpos($ua, 'RIM') ? true : false; // iPhone $iphone = strpos($ua, 'iPhone') ? true : false; // Palm $palm = strpos($ua, 'Palm') ? true : false;
Individuare il browser
Le seguenti righe di codice servono per poter ricavare il browser in uso:
// Google Chrome
$chrome = strpos($ua, 'Chrome') ? true : false; // Google Chrome
// Firefox
$firefox = strpos($ua, 'Firefox') ? true : false; // Firefox
// Internet Exlporer
$msie = strpos($ua, 'MSIE') ? true : false; // Internet Explorer
// Opera
$opera = preg_match("/\bOpera\b/i", $ua); // Opera
// Safari
$safari = strpos($ua, 'Safari') ? true : false; // Safari
E’ importante notare come per il riconoscimento di Opera sia necessario utilizzare preg_match al posto di strpos, perché quest’ultimo non riconosce la stringa ‘Opera’.
Riconoscere le versioni specifiche
Volendo essere più specifici, si può riconoscere anche la versione del browser o del sistema operativo in uso, come potete vedere dall’esempio:
$ie9 = strpos($ua, 'MSIE 9') ? true : false; // IE9 $windows7 = strpos($ua, 'Windows NT 6.1') ? true : false; // Windows 7
Per scoprire qual’è il vostro user agent attuale, cliccate qui: What’s My User Agent?
Per una lista aggiornata sui diversi user agent per i browser, guardate qui: UserAgentString.com
Purtroppo non sono riuscito a trovare una lista aggiornata per i sistemi operativi e pertanto vi toccherà cercarveli uno ad uno.
Se però qualcuno avesse un link da proporre, sarei ben felice di aggiungerlo a questo articolo.



