Someone saw the value of turning the function you cite into error_log($msg, $type, $dest, $hdr) because it encapsulated a lot of features and approaches into one function.
why not functions to initialize/reset polls, log votes, produce counts of votes, and stratify the vote choices (perhaps returning an array of counts of each choice), perhaps reducing the appended "choice" to a binary count (still one byte) of up to 255 choices? One of the real values of PHP is the robust list of such functions. Warren Vail Tools, Metrics & Quality Processes (415) 667-7814 Pager (877) 774-9891 215 Fremont 02-658 -----Original Message----- From: Scott Hurring [mailto:[EMAIL PROTECTED]] Sent: Wednesday, May 22, 2002 12:47 PM To: Php-General (E-mail) Subject: RE: [PHP] voting using text files file_append($file, $text); ?? --- Scott Hurring Systems Programmer EAC Corporation [EMAIL PROTECTED] Voice: 201-462-2149 Fax: 201-288-1515 > -----Original Message----- > From: Vail, Warren [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, May 22, 2002 3:46 PM > To: 'Rasmus Lerdorf'; 1LT John W. Holmes > Cc: Jason Soza; PHP-General > Subject: RE: [PHP] voting using text files > > > I see some real genious in this solution. This would be a > great function > addition to PHP, anybody? > > Warren Vail > Tools, Metrics & Quality Processes > (415) 667-7814 > Pager (877) 774-9891 > 215 Fremont 02-658 > > > -----Original Message----- > From: Rasmus Lerdorf [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, May 22, 2002 11:19 AM > To: 1LT John W. Holmes > Cc: Jason Soza; PHP-General > Subject: Re: [PHP] voting using text files > > > I think you guys are making this way more complicated than it > needs to be. > Anytime you start talking about locking files, you need to > apply a huge > reality check to yourself and sit down and approach the problem from a > different direction. > > In this case could I suggest that you make use of the fact > that appends of > less than a blocksize are atomic. Therefore, why not simply append a > single character to a text file for each vote? If you are > voting for a > list of things, assigning a character to each item and simply > append 'a', > 'b', 'c' or 'd' to your file. The size of the file instantly > gives you > the number of votes cast. Reading the file and counting the number of > times each letter occurs using something like substr_count() > will give you > the number of votes for each option. > > That gives you a lockless and flexible system without the > risk of deadlock > or missing votes due to race conditions. > > -Rasmus > > On Wed, 22 May 2002, 1LT John W. Holmes wrote: > > > > A good structure would be to have one file for each > possible answer and > > each > > > file contains the number of votes it has recieved. > > > Then: > > > --> Open file for the chosen option as read only > > > --> Read the value in the file > > > --> Close the file > > > --> Increase the value by one using ++ > > > --> Open the file again in write mode > > > --> Lock the file > > > --> Write the new value to the file - old one overwritten > > > --> Unlock the file > > > --> Close the file > > > > > > That's a bad method. You have to have the lock around the > read and the > > write. With your method, 5 users might read the file, all > getting 99 for > the > > count, and then each one will try to seperatly write 100 to > the file. So > you > > lose 4 actual counts. You want to open the file, read it, > update value, > > write it, unlock, and close the file. > > > > Using multiple files would just be a waste of space in my opinion. A > locked > > file doesn't stop the script, it simply waits for the file > to be unlocked > > and then continues on. > > > > ---John Holmes... > > > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php