Detect mobile os:


PHP Code:
function detect_os ($ua) {
        if (
preg_match('#PalmOS#i', $ua)) {
                
$os_name = "Palm OS";
                
$os_code = "palm";
        } elseif (
preg_match('#Windows CE#i', $ua)) {
                
$os_name = "Windows CE";
                
$os_code = "windows";
        } elseif (
preg_match('#QtEmbedded#i', $ua)) {
                
$os_name = "Qtopia";
                
$os_code = "linux";
        } elseif (
preg_match('#Zaurus#i', $ua)) {
                
$os_name = "Linux";
                
$os_code = "linux";
        } elseif (
preg_match('#Symbian#i', $ua)) {
                
$os_name = "Symbian OS";
                
$os_code = "symbian";
        }

        if (
preg_match('#PalmOS/sony/model#i', $ua)) {
                
$pda_name = "Sony Clie";
                
$pda_code = "sony";
        } elseif (
preg_match('#Zaurus ([a-zA-Z0-9.]+)#i', $ua, $matches)) {
                
$pda_name = "Sharp Zaurus " . $matches[1];
                
$pda_code = "zaurus";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#Series ([0-9]+)#i', $ua, $matches)) {
                
$pda_name = "Series";
                
$pda_code = "nokia";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#Nokia ([0-9]+)#i', $ua, $matches)) {
                
$pda_name = "Nokia";
                
$pda_code = "nokia";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#SIE-([a-zA-Z0-9]+)#i', $ua, $matches)) {
                
$pda_name = "Siemens";
                
$pda_code = "siemens";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#dopod([a-zA-Z0-9]+)#i', $ua, $matches)) {
                
$pda_name = "Dopod";
                
$pda_code = "dopod";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#o2 xda ([a-zA-Z0-9 ]+);#i', $ua, $matches)) {
                
$pda_name = "O2 XDA";
                
$pda_code = "o2";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#SEC-([a-zA-Z0-9]+)#i', $ua, $matches)) {
                
$pda_name = "Samsung";
                
$pda_code = "samsung";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#SonyEricsson ?([a-zA-Z0-9]+)#i', $ua, $matches)) {
                
$pda_name = "SonyEricsson";
                
$pda_code = "sonyericsson";
                
$pda_ver = $matches[1];
        } elseif (
preg_match('#Wii#i', $ua, $matches)) {
                
$pda_name = "Nintendo Wii";
                
$pda_code = "wii";
        }
        return array(
$os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver);
}  
usage:

PHP Code:
$info=detect_os ($_SERVER['HTTP_USER_AGENT']);
echo 
'OS name: '.$info[0].'
'
;
echo 
'OS code: '.$info[1].'
'
;
echo 
'OS version: '.$info[2].'
'
;
echo 
'Brand: '.$info[3].'
'
; //echo 'Phone code: '.$info[4].' ';
echo '
Model: '.$info[5].' ;