Bilde
  Førstesiden | C++ | JavaScript | SQL | ASP | PHP | PHP & MySQL | PHP & PostgreSQL | Bruktbutikk | Linker | Nytt fra php.net | Forum | Quiz

Fant ingen poster

Kodearkiv
+ C++ (50)
+ Intro til PHP (113)
+ PHP og databaser
+ ASP (49)
+ SQL (26)
+ JavaScript (55)
Diverse
» Howto`s (22)
» htaccess
» Innsendte triks
Feedback
» Ris og ros
» Rapporter bugs
» Ny artikkel
» Kontakt meg
Verktøy
» Generer robots.txt
» Generer metatagger
» Redirect generator
» Scann metatagger
» Bakgrunnsfarge
» Velg font
Sjekk kode
» HTML Validator
» CSS Validator
Tilfeldig link
Tjenester
» Forum
» Quiz!



Førstesiden / PHP / timer2.html

PHP4/PHP5-skript: Tidtaker

Denne klassen gir mulighet for å ha en eller flere tidstakere gående samtidig på serveren. Tidstakerne kan startes, pauses og stoppes uavhengig av hverandre, og til slutt sitter man igjen med antall sekunder som har gått, med nøyaktighet på et mikrosekund. Nok prat; her er scriptet:


<?php
class Timer
{
    
// total tid; summeres etter hvert klokkestopp
    
var $time;

    
// Om tidtakeren går eller er stanset
    
var $ticking;

    
// Midlertidig mikrosekund-tid
    
var $temp_time;

    function 
Timer()
    {
        
// Innstill medlemsvariabler til å være riktig datatype
        
$this->time = (float)0;
        
$this->ticking false;
        
$this->temp_time = (float)0;
    }
    
// Returner tiden akkurat nå i mikrosekunder
    
function get_microtime()
    {
        list(
$usec$sec) = explode(" "microtime());
        return ((float)
$usec + (float)$sec);
    }
    
// Start klokken
    
function start()
    {
        
// Start klokken bare hvis den står stille
        
if ( !$this->ticking )
        {
            
$this->temp_time $this->get_microtime();
            return 
true;
        }
        else { return 
false };
    }
    
// Stopp klokken
    
function stop()
    {
        
// Stopp klokken bare hvis den tikker
        
if ( $this->ticking )
        {
            
$this->time += $this->get_microtime() - $this->temp_time;
            return 
true;
        }
        else return 
false;
    }
    
// Returnerer tiden til denne timeren
    
function gettimer()
    {
        if ( 
$this->ticking )
        {
            
$this->stop;
        }
        
$time $this->time;
        
$this->start();
        return 
$time;
    }
}
?>


PHP4-scriptet over kjører også i PHP5, men som en liten bonus legger jeg også ved det samme scriptet optimalisert for PHP5:


<?php

// Timer - start a ticking timer

class Timer
{
        private 
$time;
        private 
$ticking;
        private 
$temp_time;

        function 
__construct()
        {
            
$this->time = (float)0;
            
$this->ticking false;
            
$this->temp_time = (float)0;
        }
        private function 
get_microtime()
        {
            return 
microtime(true);
        }
        public function 
start()
        {
            if ( !
$this->ticking )
            {
                
$this->temp_time $this->get_microtime();
                return 
true;
            }
            else return 
false;
        }
        public function 
stop()
        {
            if ( 
$this->ticking )
            {
                
$this->time += $this->get_microtime() - $this->temp_time;
                return 
true;
            }
            else return 
false;
        }
        public function 
gettimer()
        {
            if ( 
$this->ticking $this->stop();
            return 
$this->time;
        }
}

?>


Hovedforskjellen er at man ikke har adgang til medlemsvariablene utenfor klassen selv.

Denne koden inkluderes i skriptet den skal brukes med, eller legges i en egen fil og lastes med include() eller require().

Bruksanvisning:


<?php
// Last inn timer-klassen
include("Script med class timer.php");

// Lag ny timer
$MinTimer = new Timer;

// (venter i 3 sekunder)
sleep(3);

// Stopp timeren
$MinTimer->stop();

// (venter i 2 sekunder)
sleep(2);

// Start timeren igjen
$MinTimer->start();

// (vent i 5 sekunder)
sleep(5);

// Stopp timer
$MinTimer->stopp();

// Registrer tid
$Tid $MinTimer->gettimer();
?>


Sendt inn av Eirik Sletteberg til Tips/triks-seksjonen på sindrem.com


Utskriftsvennlig versjon | Forslag til endring av artikkel | Skriv ut | Ny kommentar

Det er ingen kommentarer til denne artikkelen.



Nyttige program
PHP
MySQL
PostgreSQL
.NET FrameWork
Apachetoolbox
EasyPHP
PHP Coder
Om meg
CV
Hvem er jeg?
Støtt sindrem.com
Bli partner?
Linke til Sindrem.com
SinSoft
Priser annonsering
Oppdrag
Kursplan 2003
Systemutvikling
Forum
Søk på sindrem.com
 
 
Søk på php.net
 
 
Nyhetsbrev
 
 På:Av:
 


 ©® Sindre Mathisen, SinSoft™ Designet for NS 6.0, IE 5, Opera 5.0 og nyere. Bokmerk denne siden.




Forum1.no - Bannerexchange