referer counter

From: Date: Thu, 12 Jun 2003 09:29:18 +0000
Subject: referer counter
Groups: php.general 
Request: Send a blank email to php-general+get-151214@lists.php.net to get a copy of this message
Hi guys, I am writing a counter that checks where the hit comes from, and if it comes from the same site, it will not count . I have a question related to performance: In the script (as yet) I have to open the txt file twice at this stage, because I first need to read from it and then write to it. The problem is that the a+ and w+ property of fopen set the file 0 before I can read from it. So here is the real question: Is it possible to do this with only one read? Does it matter performance wise? The script functions are below: function ref($url) { $nc = 0; $cfile = "inc/log/logcount.txt"; $valid = preg_match("/dcv/", $url); $fp = fopen($cfile,"r"); $pc = fgets($fp,1024); if($valid){ echo $pc; } else { $this->incr($pc,$fp,$nc); fclose($fp); $this->write($nc,$cfile); echo $nc; } } function incr($pc,$fp,&$nc) { if($pc != "") $nc = intval($pc)+1; else fputs($fp,1); return $nc; } function write($nc,$cfile) { $fp = fopen($cfile,"w"); $done = fputs($fp,$nc); if($done == 0) exit; fclose($fp); } //END of counter functions } Additionally, why do I have to pass the nc variable to function incr() as reference? It did not work just do return $nc. Thomas

« previous php.general (#151214) next »