Location: PHPKode > scripts > Chrono Class > chrono-class/chrono.class.php
<?php

##################################################################################
# Class: chrono                                                  Date: 09-Apr-2002
# Author: Ariel Filipiak <hide@address.com>
#            This code is released under GPL (GNU Public License)                
# Feel free to edit/use so long as you keep this copyright.USE at your own risk! 

class chrono {
    
    var $frmt;
    var $ini;
    var $run;
    var $now;
    var $sum;
    var $sub;
    var $time;
    var $memarr = array();
    var $memkey;
    var $memlap;

    function chrono($s_format = "") {
        $this->frmt = $s_format;
        $this->start();
    }

    function getMicrotime(){ 
        $ts_now = explode(" ", microtime()); 
        return $ts_now[1] + $ts_now[0]; 
    } 

    function format($t_sec){ 
        if (!$this->frmt) $this->frmt = "%01.3f";
        return sprintf($this->frmt, $t_sec);
    } 

    function start() {
        $this->ini  = $this->getMicroTime();
        $this->run = TRUE;
    }

    function mem($s_id = "") {
        if (!$s_id) return "ERR<!-- ID missing -->";
        if (!$this->run) return "ERR<!-- stopped -->";
        $this->time  = $this->lap();
        $this->memarr[$s_id] = $this->sum;
        return $this->time;
    }

    function lap($s_id = "") {
        if (!$this->run) return "ERR<!-- stopped -->";
        $this->now  = $this->getMicroTime();
        $this->sum  = $this->sub + $this->now - $this->ini;
        if ($s_id) {
            if (!$this->memarr[$s_id]) return "ERR<!-- ID not found -->";
            $this->sum  = $this->sum - $this->memarr[$s_id];
        }
        $this->time = $this->format($this->sum);
        return $this->time;
    }

    function stop() {
        $this->time  = $this->lap();
        $this->sub   = $this->sum;
        $this->run   = FALSE;
        return $this->time;
    }

    function getmem() {
        $i = 0;
        $this->memkey = array();
        $this->memlap = array();
        reset($this->memarr);
        while (list ($s_key) = each ($this->memarr)) {
            $this->memkey[] = $s_key;
            $this->memlap[] = $this->lap($s_key);
            $i++;
        }
        return $i;
    }

    function restart() {
        $this->sub = "";
        $this->start();
    }
}

?>
Return current item: Chrono Class