Come riconoscere il sistema operativo e la versione del browser tramite php

Come riconoscere il sistema operativo e la versione del browser tramite una funzione php

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.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>