Sistemas operativos

Obtener el Sistema Operativo con PHP

Hugui Dugui

Alguna vez en un proyecto, unos estilos CSS se tenían que aplicar solo para cierto sistema operativo. Es decir, el cliente quería que si veía en Windows, tal elemento se tenía que ver en un color y así para cada sistema operativo de los más conocidos, en este caso: Windows, Mac y Linux.

En PHP existe la "super matriz" llamada $_SERVER que tiene entre otra información, el sistema operativo donde está corriendo tu script. Para ver la información del sistema operativo, basta con hacer:

echo $_SERVER["HTTP_USER_AGENT"];

Con lo que obtendremos los siguiente para cada sistema operativo:

Para Linux Ubunutu:

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:42.0) Gecko/20100101 Firefox/42.0

Para windows:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36

Para Mac:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8 AppleWebKit;/537.36 [KHTML, like Gecko] Chrome/46.0.22490.86 Safari/537.36

Como puedes notar, cada salida que se obtiene de imprimir esa instrucción tiene la palabra del sistema operativo, entonces, con este texto que se obtiene podemos hacer una búsqueda de la palabra "Windows", "Machintoch" o "Linux" con la función de PHP strpos y con esto hacer una condición como se muestra a continuación:

<?php 
$infoSO = $_SERVER["HTTP_USER_AGENT"];
 
if( strpos($infoSO) == "Windows" ){
    //Agregamos ciertas instrucciones que solo se aplicarán para windows
    //Por ejemplo, estilos:
?>
    <style>
      /* Aquí el código css*/
    </style>
 
<?php } ?>

<?php 
if( strpos($infoSO) == "Macintosh" ){
    //Código
<?php } ?>

<?php
if( strpos($infoSO) == "Linux" ){
    //Código
<?php } ?>

Hasta aquí esta entrada, espero que te sea de utilidad como lo fue para mí, cualquier duda o comentario, házmelo saber en ringhugos@gmail.com, también puedes escribirme al whatsapp, en el footer está mi número. Muchas gracias por leer el blog :D