Thanks, a really great reply.
Have some questions about the fine details.

The counter file is an single line with any size numeric
field starting in position 1?
Like this, right?
2004000000

Does the file have to be an  .txt  file?

What happens if the counter file is in use and locked?
Does the second request pause until file is free?

If the counter file has no path prefix, then it's looked for
in the same location as the script, right?
$counter_file = 'counter.php'

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Peter
Risdon
Sent: Sunday, February 29, 2004 9:09 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED] ORG
Subject: Re: Counter in php script

fbsd_user wrote:

>Need to set the initial value for an counter and save it, then
>bump the saved value by one every time the php script is executed.
>This must be a very basic function, but not being an php
>script coder my self this is all new to my.
>
>Can anyone provide sample code I can use to do this?
>
>
 From a user contribution to the php manual at
http://www.php.net/manual/en/function.fopen.php

- edit to suit and use at your own risk.

PWR.

|$counter_file = '/tmp/counter.txt';
clearstatcache();
ignore_user_abort(true);    ## prevent refresh from aborting file
operations and hosing file
if (file_exists($counter_file)) {
   $fh = fopen($counter_file, 'r+');
   while(1) {
     if (flock($fh, LOCK_EX)) {
         #$buffer = chop(fgets($fh, 2));
         $buffer = chop(fread($fh, filesize($counter_file)));
         $buffer++;
         rewind($fh);
         fwrite($fh, $buffer);
         fflush($fh);
         ftruncate($fh, ftell($fh));
         flock($fh, LOCK_UN);
         break;
     }
   }
}
else {
   $fh = fopen($counter_file, 'w+');
   fwrite($fh, "1");
   $buffer="1";
}
fclose($fh);

print "Count is $buffer";

?>|


_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to
"[EMAIL PROTECTED]"

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to