getAll(); $perfdata = preg_replace('~\'([^\']+)\'~e', "str_replace(' ', '\'', '$1')", $perfdata); $parts = preg_split('~\s+~', $perfdata, -1, PREG_SPLIT_NO_EMPTY); $result = ''; if ($compact === true) { $compact = 5; } if ($compact && count($parts) > $compact) { $parts = array_slice($parts, 0, $compact); } foreach ($parts as $part) { if (strpos($part, '=') === false) continue; list($name, $vals) = preg_split('~=~', $part, 2); $name = str_replace("'", ' ', $name); $parts = preg_split('~;~', $vals, 5); while (count($parts) < 5) $parts[] = null; list($val, $warn, $crit, $min, $max) = $parts; $unit = ''; if (preg_match('~^([\d+\.]+)([^\d]+)$~', $val, $m)) { $unit = $m[2]; $val = $m[1]; } else { continue; } if ($unit == 'c') continue; // Counter pie graphs are not useful if ($unit == '%') { if (! $min ) $min = 0; if (! $max) $max = 100; } else { if (! $max && $crit > 0) $max = $crit; //return ''; } if (! $max) continue; $green = 0; $orange = 0; $red = 0; $gray = $max - $val; if ($val < $warn) $green = $val; elseif ($val < $crit) $orange = $val; else $red = $val; if ($compact) { $result .= '
' . implode(',', array($green, $orange, $red, $gray)) . '
'; } else { $result .= '
' . implode(',', array($green, $orange, $red, $gray)) . '
' . htmlspecialchars($name) . '' . htmlspecialchars($ps[$name]->getFormattedValue() /* $val*/) //. htmlspecialchars($unit) . ''; } } if ($result == '') { $result = $perfdata; } if (! $compact && $result !== '') { $result = '' . $result . '
'; } return $result; } }