Ho provato questo codice, ma anche se funziona, mi produce una serie di linee aggiuntive fra i record. Ho provato a togliere \n nella save, ma mi vengono i record tutti di seguito. Chi è che mi aggiunge le linee?

codice:
// Check if a string is a whole number
function is_whole_number($var){
	return (is_numeric($var)&&(intval($var)==floatval($var)));
}
// Load any text file (Unix, Win, Mac, ...) and strip end of line chars
// Better and faster than file()
function loadFile($filename) {
	$fp = fopen($filename, "rb");
	$buffer = fread($fp, filesize($filename));
	fclose($fp);
	$lines = preg_split("/\r?\n|\r/", $buffer);
	return $lines;
} 
// Save an array of strings to a text file
function saveFile($filename, $array) {
	$fp = fopen($filename, "w+");
	for ($i=0; $i<sizeof($array); $i++) {
		fputs($fp,$array[$i]."\n"); 
	}
	fclose($fp);
}
// Read counter file, search for name
// If found update, otherwise create (initial value = 1)
function updateCounter($counterName) {
	$found = 0 ;
	$append = 0 ;
	$counterFile = "counters.txt"; 
	if (file_exists($counterFile)) {
		$fileRecords = loadFile($counterFile);ECHO "[".sizeof($fileRecords)."]";
  		for ($i=0; $i<sizeof($fileRecords); $i++) {
    		list($aName,$counterValue) = explode(":",trim($fileRecords[$i]));
    		if (strcmp($aName,$counterName) == 0) {
				if (is_whole_number($counterValue)) {
					$counterValue++ ;
				} 
				else {
					$counterValue = 1 ;
				}
				$fileRecords[$i] = $counterName . ":" . $counterValue ;
				$found = $counterValue ;
				break $i ;
    		}
		}
		$append = sizeof($fileRecords) ;
	}
	if ($found == 0) {ECHO $last . "!";
		$counterValue = 1 ;
		$fileRecords[$append] = $counterName . ":" . $counterValue ;
	}
	saveFile($counterFile, $fileRecords) ;
	return $counterValue ;
}