= $fsize) return false; do { if (feof($f)) return false; $titem = fgets($f,LLNE); } while (substr($titem,0,1) == '-' || $titem == ''); // return post $titem = explode("\t",$titem); $item['id'] = (int)$titem[0]; $item['addr'] = $titem[1]; $item['tme'] = (int)$titem[2]; $item['ip'] = $titem[3]; $item['filepos'] = ftell($f); return $item; } // Writes a new item to the file function writeitem($f, $addr) { global $nextindex, $fsize; rewind($f); // This has to be padded because we are editing the top of the file fwrite($f, str_pad($nextindex+1, LIN, '0', STR_PAD_LEFT)); fseek($f, $fsize); $newdata = $nextindex.SP.$addr.SP.time().SP.$_SERVER['REMOTE_ADDR'].NL; fwrite($f, $newdata); $fsize += strlen($newdata); $nextindex++; changecount($f, 1); return true; } // Finds specified ID and marks it deleted function delitem($f, $id) { if (skiptoid($f, $id)) { while(1) { $c = fgetc($f); if ($c == '\r') break; if ($c == '\n') break; if (feof($f)) break; fwrite($f, ' '); } changecount($f, -1); skiptoitem($f, 0); return true; } else return false; } function closefile($f) { fclose($f); } ?>