php 获取操作系统

2018-11-06 08:58:18 qq_36025814 阅读数 718

                                                                 PHP获取客户端浏览以及操作系统信息

PHP获取客户端浏览器以及操作系统信息是通过客户端浏览器传递过来的useragent信息进行判定的,因为客户端useragent信息可以伪造,所以通过PHP获取到的浏览器以及操作系统信息只能作为参考,如下代码还有待丰富的地方。

PHP中可以直接通过读取超全局数组$_SERVER['HTTP_USER_AGENT']进行正则匹配即可获取到相应的浏览和操作系统信息。说白了,就是对php的pcre兼容的正则表达式的理解。

一、获取客户端浏览器信息,包括版本号

    /**
     * 获取客户端浏览器信息 添加win10 edge浏览器判断
     * @param  null
     * @author  Jea杨
     * @return string 
     */
    function get_broswer(){
    	 $sys = $_SERVER['HTTP_USER_AGENT'];  //获取用户代理字符串
         if (stripos($sys, "Firefox/") > 0) {
             preg_match("/Firefox\/([^;)]+)+/i", $sys, $b);
             $exp[0] = "Firefox";
             $exp[1] = $b[1];  //获取火狐浏览器的版本号
         } elseif (stripos($sys, "Maxthon") > 0) {
             preg_match("/Maxthon\/([\d\.]+)/", $sys, $aoyou);
             $exp[0] = "傲游";
             $exp[1] = $aoyou[1];
         } elseif (stripos($sys, "MSIE") > 0) {
             preg_match("/MSIE\s+([^;)]+)+/i", $sys, $ie);
             $exp[0] = "IE";
             $exp[1] = $ie[1];  //获取IE的版本号
         } elseif (stripos($sys, "OPR") > 0) {
    		     preg_match("/OPR\/([\d\.]+)/", $sys, $opera);
             $exp[0] = "Opera";
             $exp[1] = $opera[1];  
         } elseif(stripos($sys, "Edge") > 0) {
             //win10 Edge浏览器 添加了chrome内核标记 在判断Chrome之前匹配
             preg_match("/Edge\/([\d\.]+)/", $sys, $Edge);
             $exp[0] = "Edge";
             $exp[1] = $Edge[1];
         } elseif (stripos($sys, "Chrome") > 0) {
    		     preg_match("/Chrome\/([\d\.]+)/", $sys, $google);
             $exp[0] = "Chrome";
             $exp[1] = $google[1];  //获取google chrome的版本号
         } elseif(stripos($sys,'rv:')>0 && stripos($sys,'Gecko')>0){
             preg_match("/rv:([\d\.]+)/", $sys, $IE);
    		     $exp[0] = "IE";
             $exp[1] = $IE[1];
         }else {
    		$exp[0] = "未知浏览器";
            $exp[1] = ""; 
    	 }
         return $exp[0].'('.$exp[1].')';
    }

二、获取客户端操作系统信息,包括粗略的版本信息

    /**
     * 获取客户端操作系统信息包括win10
     * @param  null
     * @author  Jea杨
     * @return string 
     */
    function get_os(){
    $agent = $_SERVER['HTTP_USER_AGENT'];
        $os = false;
     
        if (preg_match('/win/i', $agent) && strpos($agent, '95'))
        {
          $os = 'Windows 95';
        }
        else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90'))
        {
          $os = 'Windows ME';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent))
        {
          $os = 'Windows 98';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent))
        {
          $os = 'Windows Vista';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent))
        {
          $os = 'Windows 7';
        }
    	  else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent))
        {
          $os = 'Windows 8';
        }else if(preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent))
        {
          $os = 'Windows 10';#添加win10判断
        }else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent))
        {
          $os = 'Windows XP';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent))
        {
          $os = 'Windows 2000';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent))
        {
          $os = 'Windows NT';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent))
        {
          $os = 'Windows 32';
        }
        else if (preg_match('/linux/i', $agent))
        {
          $os = 'Linux';
        }
        else if (preg_match('/unix/i', $agent))
        {
          $os = 'Unix';
        }
        else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent))
        {
          $os = 'SunOS';
        }
        else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent))
        {
          $os = 'IBM OS/2';
        }
        else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent))
        {
          $os = 'Macintosh';
        }
        else if (preg_match('/PowerPC/i', $agent))
        {
          $os = 'PowerPC';
        }
        else if (preg_match('/AIX/i', $agent))
        {
          $os = 'AIX';
        }
        else if (preg_match('/HPUX/i', $agent))
        {
          $os = 'HPUX';
        }
        else if (preg_match('/NetBSD/i', $agent))
        {
          $os = 'NetBSD';
        }
        else if (preg_match('/BSD/i', $agent))
        {
          $os = 'BSD';
        }
        else if (preg_match('/OSF1/i', $agent))
        {
          $os = 'OSF1';
        }
        else if (preg_match('/IRIX/i', $agent))
        {
          $os = 'IRIX';
        }
        else if (preg_match('/FreeBSD/i', $agent))
        {
          $os = 'FreeBSD';
        }
        else if (preg_match('/teleport/i', $agent))
        {
          $os = 'teleport';
        }
        else if (preg_match('/flashget/i', $agent))
        {
          $os = 'flashget';
        }
        else if (preg_match('/webzip/i', $agent))
        {
          $os = 'webzip';
        }
        else if (preg_match('/offline/i', $agent))
        {
          $os = 'offline';
        }
        else
        {
          $os = '未知操作系统';
        }
        return $os;  
    }

原文地址:《最新PHP获取客户端浏览以及操作系统信息

2016-12-19 18:05:35 gouyuanyang 阅读数 789


PHP 获取操作系统


function getSystem() {
        $agent = $_SERVER['HTTP_USER_AGENT'];
        $os = false;
        if (stristr($agent,'win')) {
            $os = 'Windows';
        }
        else if (stristr($agent,'win') && stristr($agent, '95')) {
            $os = 'Windows 95';
        }
        else if (stristr($agent,'win 9x') && stristr($agent, '4.90')) {
            $os = 'Windows ME';
        }
        else if (stristr($agent,'win') && stristr($agent,'98')) {
            $os = 'Windows 98';
        }
        else if (stristr($agent,'win') && stristr($agent,'nt 5.1')) {
            $os = 'Windows XP';
        }
        else if (stristr($agent,'win') && stristr($agent,'nt 5')) {
            $os = 'Windows 2000';
        }
        else if (stristr($agent,'win') && stristr($agent,'nt')) {
            $os = 'Windows NT';
        }
        else if (stristr($agent,'win') && stristr($agent,'32')) {
            $os = 'Windows 32';
        } else if (stristr($agent,'linux')) {
            $os = 'Linux';
        }
        else if (stristr($agent,'unix')) {
            $os = 'Unix';
        }
        else if (stristr($agent,'sun') && stristr($agent,'os')) {
            $os = 'SunOS';
        }
        else if (stristr($agent,'ibm') && stristr($agent,'os')) {
            $os = 'IBM OS/2';
        }
        else if (stristr($agent,'Mac')) {
            $os = 'Mac OS X';
        }
        else if (stristr($agent,'PowerPC')) {
            $os = 'PowerPC';
        }
        else if (stristr($agent,'AIX')) {
            $os = 'AIX';
        }
        else if (stristr($agent,'HPUX')) {
            $os = 'HPUX';
        }
        else if (stristr($agent,'NetBSD')) {
            $os = 'NetBSD';
        }
        else if (stristr($agent,'BSD')) {
            $os = 'BSD';
        }
        else if (stristr($agent,'OSF1')) {
            $os = 'OSF1';
        }
        else if (stristr($agent,'IRIX')) {
            $os = 'IRIX';
        }
        else if (stristr($agent,'FreeBSD')) {
            $os = 'FreeBSD';
        }
        else if (stristr($agent,'teleport')) {
            $os = 'teleport';
        }
        else if (stristr($agent,'flashget')) {
            $os = 'flashget';
        }
        else if (stristr($agent,'webzip')) {
            $os = 'webzip';
        }
        else if (stristr($agent,'offline')) {
            $os = 'offline';
        }
        else{
            $os = 'Unknown';
        }
        return $os;
    }


这个参考  http://blog.sina.com.cn/s/blog_68b0cad1010169vr.html  这个博客改编    eregi =》stristr  eregi(此函数php5.3废弃,php7.0删除)

2013-07-02 10:41:00 weixin_30735745 阅读数 37
 1 function getOS() {
 2   // Create list of operating systems with operating system name as array key 
 3       $userAgent=$_SERVER["HTTP_USER_AGENT"];
 4     $oses = array (
 5         'iPhone' => '(iPhone)',
 6         'Windows 3.11' => 'Win16',
 7         'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', // Use regular expressions as value to identify operating system
 8         'Windows 98' => '(Windows 98)|(Win98)',
 9         'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
10         'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
11         'Windows 2003' => '(Windows NT 5.2)',
12         'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
13         'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
14         'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
15         'Windows ME' => 'Windows ME',
16         'Open BSD'=>'OpenBSD',
17         'Sun OS'=>'SunOS',
18         'Linux'=>'(Linux)|(X11)',
19         'Safari' => '(Safari)',
20         'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
21         'QNX'=>'QNX',
22         'BeOS'=>'BeOS',
23         'OS/2'=>'OS/2',
24         'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)'
25     );
26 
27     foreach($oses as $os=>$pattern){ // Loop through $oses array
28     // Use regular expressions to check operating system type
29         if(eregi($pattern, $userAgent)) { // Check if a value in $oses array matches current user agent.
30             return $os; // Operating system was matched so return $oses key
31         }
32     }
33     return 'Unknown'; // Cannot find operating system so return Unknown
34 }

 

转载于:https://www.cnblogs.com/liusir/p/3166445.html

2016-06-08 16:10:44 meitesiluyuan 阅读数 8687

下面是PHP获取当前服务器信息的基本语句。

PHP程式版本: <?PHP echo PHP_VERSION; ?>
ZEND版本: <?PHP echo zend_version(); ?>
MYSQL支持: <?php echo function_exists (mysql_close)?"是":"否"; ?>

MySQL数据库持续连接 :
<?php echo @get_cfg_var("mysql.allow_persistent")?"是 ":"否"; ?>
MySQL最大连接数:

 <?php echo @get_cfg_var("mysql.max_links")==-1 ? "不限" : @get_cfg_var("mysql.max_links");?>

服务器操作系统: <?PHP echo PHP_OS; ?>
服务器端信息: <?PHP echo $_SERVER ['SERVER_SOFTWARE']; ?>
最大上传限制: <?PHP echo get_cfg_var ("upload_max_filesize")?get_cfg_var ("upload_max_filesize"):"不允许上传附件"; ?>
最 大执行时间: <?PHP echo get_cfg_var("max_execution_time")."秒 "; ?>
脚本运行占用最大内存:
<?PHP echo get_cfg_var ("memory_limit")?get_cfg_var("memory_limit"):"无" ?>

查询当前连接的MYSQL数据库的版本 php自带函数 mysql_get_server_info()
获得服务

date_default_timezone_set (PRC); echo date(“Y-m-d G:i:s”);
的MYSQL数据库的版本 php自带函数 mysql_get_server_info()
获得服务器系统时间

 date_default_timezone_set (PRC); echo date("Y-m-d G:i:s");
2013-03-19 11:05:57 manito_y 阅读数 1197
function os(){
					$os = $_SERVER['HTTP_USER_AGENT'];
					if(preg_match('/NT\s5\.1/',$os)){
					$os = "Windows XP";
					}elseif(preg_match('/NT\s6\.0/',$os)){
					$os =  "Windows Vista \ server 2008";
					}elseif(preg_match('/NT\s5\.2/',$os)){
					$os = "Windows Server 2003";
					}elseif(preg_match('/NT\s5/',$os)){
					$os = "Windows 2000";
					}elseif(preg_match('/NT/',$os)){
					$os ="Windows NT";
					}elseif(preg_match('/NT\s6\.1/',$os)){
					$os = "Windows 7";
					}elseif(preg_match('/Linux/',$os)){
					$os ="Linux";
					}elseif(preg_match('/Unix/',$os)){
					$os = "Unix";
					}elseif(preg_match('/Mac/',$os)){
					$os = "Macintosh";
					}elseif(preg_match('/NT\s6\.1/',$os)){
					$os ="Windows 7";
					}
					else $os ="Unknow OS";
					return $os;
					}