Translated using Weblate (Norwegian Bokmål)
[phpmyadmin.git] / libraries / sysinfo.lib.php
blob27235ef2de39fabf1e0f1fc90cd9b017551fdfe2
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * Library for extracting information about system memory and cpu.
5 * Currently supports all Windows and Linux platforms
7 * This code is based on the OS Classes from the phpsysinfo project
8 * (https://phpsysinfo.github.io/phpsysinfo/)
10 * @package PhpMyAdmin-sysinfo
12 if (! defined('PHPMYADMIN')) {
13 exit;
16 define(
17 'MEMORY_REGEXP',
18 '/^(MemTotal|MemFree|Cached|Buffers|SwapCached|SwapTotal|SwapFree):'
19 . '\s+(.*)\s*kB/im'
22 /**
23 * Returns OS type used for sysinfo class
25 * @param string $php_os PHP_OS constant
27 * @return string
29 function PMA_getSysInfoOs($php_os = PHP_OS)
32 // look for common UNIX-like systems
33 $unix_like = array('FreeBSD', 'DragonFly');
34 if (in_array($php_os, $unix_like)) {
35 $php_os = 'Linux';
38 return ucfirst($php_os);
41 /**
42 * Gets sysinfo class mathing current OS
44 * @return \PMA\libraries\SysInfo|mixed sysinfo class
46 function PMA_getSysInfo()
48 $php_os = PMA_getSysInfoOs();
49 $supported = array('Linux', 'WINNT', 'SunOS');
51 if (in_array($php_os, $supported)) {
52 $class_name = 'PMA\libraries\SysInfo' . $php_os;
53 /** @var \PMA\libraries\SysInfo $ret */
54 $ret = new $class_name();
55 if ($ret->supported()) {
56 return $ret;
60 return new \PMA\libraries\SysInfo();