method info documentation in bbn\Api\Virtualmin
Gets server info
function(array $arguments = [])
{
$infoStr = $this->__call('info', [$arguments]);
$info = [];
if (strlen($infoStr)) {
preg_match_all('/^[a-z|_]*\:\h{1}/m', $infoStr, $delimiters, PREG_OFFSET_CAPTURE);
$delimiters = \array_map(
function ($m) {
return [
'name' => \trim(str_replace(':', '', $m[0])),
'pos' => $m[1]
];
},
$delimiters[0]
);
foreach ($delimiters as $i => $d) {
$pos1 = $d['pos'];
$pos2 = isset($delimiters[$i + 1]) ? ($delimiters[$i + 1]['pos'] - $pos1) : null;
$st = \is_null($pos2) ? \trim(substr($infoStr, $pos1)) : \trim(substr($infoStr, $pos1, $pos2));
if (strlen($st)) {
$info[$d['name']] = [];
switch ($d['name']) {
case 'disk_fs':
case 'poss':
case 'status':
case 'vposs':
$info[$d['name']] = explode('*', $st);
unset($info[$d['name']][0]);
$info[$d['name']] = array_values($info[$d['name']]);
foreach ($info[$d['name']] as $istr => $str) {
if ($str = explode("\n", \trim($str))) {
$tmp = [];
foreach ($str as $is => $s) {
if ($s = explode(':', $s)) {
$tmp[\trim($s[0])] = \trim($s[1]);
}
}
$str = $tmp;
}
$info[$d['name']][$istr] = $str;
}
break;
case 'progs':
$info[$d['name']] = explode('*', $st);
unset($info[$d['name']][0]);
$info[$d['name']] = array_values($info[$d['name']]);
foreach ($info[$d['name']] as $istr => $str) {
$info[$d['name']][$istr] = \trim(str_replace("\n", '', $str));
if (!strlen($info[$d['name']][$istr])) {
unset($info[$d['name']][$istr]);
}
}
$info[$d['name']] = array_values($info[$d['name']]);
foreach ($info[$d['name']] as $istr => $str) {
if ($istr % 2 === 0) {
$info[$d['name']][$str] = $info[$d['name']][$istr + 1];
unset($info[$d['name']][$istr], $info[$d['name']][$istr + 1]);
}
}
break;
default:
if (substr_count($st, '*')) {
$info[$d['name']] = explode('*', $st);
unset($info[$d['name']][0]);
$info[$d['name']] = array_values($info[$d['name']]);
foreach ($info[$d['name']] as $istr => $str) {
$str = str_replace("\n", '', $str);
$info[$d['name']][$istr] = \trim($str);
}
}
elseif (substr_count($st, ':')) {
$fields = array_filter(
explode("\n", $st),
function ($val) {
return $val !== '';
}
);
foreach ($fields as $y => $field) {
if (($pos = strpos($field, ':')) !== false) {
$idx = str_replace(' ', '', substr($field, 0, $pos));
$value = substr($field, $pos, strlen($field) - $pos);
$value = str_replace(': ', '', $value);
if (count($fields) > 1) {
$info[$d['name']][$idx] = $value;
if (($idx === $d['name'])
&& ($info[$d['name']][$idx] === '')
) {
unset($info[$d['name']][$idx]);
}
}
else {
$info[$d['name']] = $value;
}
}
}
}
break;
}
}
}
}
return $info;
}
Gets server info BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way
This website uses cookies to ensure you get the best experience on our website.
© 2011-2023
BBN Solutions