sábado, 10 de agosto de 2013

Obtener sistema operativo del visitante con PHP

Para realizar estadísticas de uso de una Web, resulta interesante obtener el sistema operativo empleado por cada usuario, así podremos conocer los hábitos de los visitas a nuestra.

Para obtener el sistema operativo o plataforma empleada en una visita, en primer lugar, debemos obtener el USER_AGENT. El USER_AGENT nos dará toda la información necesaria sobre el sistema operativo y navegador de la visita.

En el artículo Obtener navegador del visitante con PHP explico cómo obtener el navegador empleado. Para recoger el USER_AGENT de la visita lo haremos:

$user_agent = $_SERVER['HTTP_USER_AGENT'];

Una vez obtenido el user_agent únicamente tenemos que pasar este valor a nuestra función getPlatform():

function getPlatform($user_agent) {
   $plataformas = array(
      'Windows 8' => 'Windows NT 6.2+',
      'Windows 7' => 'Windows NT 6.1+',
      'Windows Vista' => 'Windows NT 6.0+',
      'Windows XP' => 'Windows NT 5.1+',
      'Windows 2003' => 'Windows NT 5.2+',
      'Windows' => 'Windows otros',
      'iPhone' => 'iPhone',
      'iPad' => 'iPad',
      'Mac OS X' => '(Mac OS X+)|(CFNetwork+)',
      'Mac otros' => 'Macintosh',
      'Android' => 'Android',
      'BlackBerry' => 'BlackBerry',
      'Linux' => 'Linux',
   );
   foreach($plataformas as $plataforma=>$pattern){
      if (eregi($pattern, $user_agent))
         return $plataforma;
   }
   return 'Otras';
}

La función nos devolverá una cadena de texto con el nombre del sistema operativo. En caso de que no lo reconozca devolverá “Otras”.

A medida que van surgiendo nuevas plataformas o nuevas versiones, podemos ir ampliando la función getPlatform() para así reconocerlos y que la función no nos devuelva el valor “Otras”.

1 comentario :

  1. Muy bueno me ayudo mucho, ya que viene mas completo que algunos ejemplos que encontre.

    Muchas gracias, podre terminar un proyecto para mi novia

    ResponderEliminar