<?php 
 
function tdate($input) { 
    return date(DATE_RFC822, $input);  
} 
 
function hours($input) { 
    if ($input < 60) return number_format($input, 2) . ' sec'; 
    if ($input < 60*60) return number_format(($input/60),2) . ' min'; 
    if ($input < 24*60*60) return number_format(($input/(60*60)),2) . ' hours'; 
    return number_format($input/(24*60*60),2) . ' days'; 
     
} 
 
 
function humanreadable($input) { 
      
    $output = ""; 
    $input = abs($input); 
     
    if ($input >= (1024*1024*1024*1024*1024*1024*1024*100)) { 
        $output = sprintf("%5ldEi", $input / (1024*1024*1024*1024*1024*1024) );         
    } else if ($input >= (1024*1024*1024*1024*1024*1024*10)) { 
        $output = sprintf("%5.1fEi", $input / (1024.0*1024.0*1024.0*1024.0*1024.0*1024.0) );         
    } else if ($input >= (1024*1024*1024*1024*1024*1024)) { 
        $output = sprintf("%5.2fEi", $input / (1024.0*1024.0*1024.0*1024.0*1024.0*1024.0) );     
 
 
    } else if ($input >= (1024*1024*1024*1024*1024*100)) { 
        $output = sprintf("%5ldPi", $input / (1024*1024*1024*1024*1024) );         
    } else if ($input >= (1024*1024*1024*1024*1024*10)) { 
        $output = sprintf("%5.1fPi", $input / (1024.0*1024.0*1024.0*1024.0*1024.0) );         
    } else if ($input >= (1024*1024*1024*1024*1024)) { 
        $output = sprintf("%5.2fPi", $input / (1024.0*1024.0*1024.0*1024.0*1024.0) );     
         
    } else if ($input >= (1024*1024*1024*1024*100)) { 
        $output = sprintf("%5ldTi", $input / (1024*1024*1024*1024) ); 
    } else if ($input >= (1024*1024*1024*1024*10)) { 
        $output = sprintf("%5.1fTi", $input / (1024.0*1024.0*1024.0*1024.0) );     
    } else if ($input >= (1024*1024*1024*1024)) { 
        $output = sprintf("%5.2fTi", $input / (1024.0*1024.0*1024.0*1024.0) ); 
 
 
    } else if ($input >= (1024*1024*1024*100)) { 
        $output = sprintf("%5ldGi", $input / (1024*1024*1024) );         
    } else if ($input >= (1024*1024*1024*10)) { 
        $output = sprintf("%5.1fGi", $input / (1024.0*1024.0*1024.0) );         
    } else if ($input >= (1024*1024*1024)) { 
        $output = sprintf("%5.2fGi", $input / (1024.0*1024.0*1024.0) );     
         
    } else if ($input >= (1024*1024*100)) { 
        $output = sprintf("%5ldMi", $input / (1024*1024) ); 
    } else if ($input >= (1024*1024*10)) { 
        $output = sprintf("%5.1fM", $input / (1024.0*1024.0) );     
    } else if ($input >= (1024*1024)) { 
        $output = sprintf("%5.2fMi", $input / (1024.0*1024.0) );         
         
    } else if ($input >= (1024 * 100)) { 
        $output = sprintf("%5ldKi", $input / (1024) ); 
    } else if ($input >= (1024 * 10)) { 
        $output = sprintf("%5.1fKi", $input / 1024.0 ); 
    } else if ($input >= (1024)) { 
        $output = sprintf("%5.2fKi", $input / 1024.0 ); 
         
    } else { 
        $output = sprintf("%5ld", $input ); 
    } 
 
    return $output; 
} 
 
 
 
 
$config = SimpleSAML_Configuration::getInstance(); 
 
/* Make sure that the user has admin access rights. */ 
SimpleSAML_Utilities::requireAdmin(); 
 
 
$formats = array( 
    'bytes' => 'humanreadable', 
    'bytes_read' => 'humanreadable', 
    'bytes_written' => 'humanreadable', 
    'limit_maxbytes' => 'humanreadable', 
    'time' => 'tdate', 
    'uptime' => 'hours', 
); 
 
$statsraw = SimpleSAML_Memcache::getStats(); 
 
$stats = $statsraw; 
 
foreach($stats AS $key => &$entry) { 
    if (array_key_exists($key, $formats)) { 
        $func = $formats[$key]; 
        foreach($entry AS $k => $val) { 
            $entry[$k] = $func($val); 
        } 
    } 
 
} 
 
$template = new SimpleSAML_XHTML_Template($config, 'memcacheMonitor:memcachestat.tpl.php'); 
$template->data['title'] = 'Memcache stats'; 
$template->data['table'] = $stats; 
$template->data['statsraw'] = $statsraw; 
$template->show(); 
 
 |