Re: Opening large text files on Windows

From: Date: Fri, 24 May 2002 14:25:44 +0000
Subject: Re: Opening large text files on Windows
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-99088@lists.php.net to get a copy of this message
Hi Richard: On Fri, May 24, 2002 at 02:42:59PM +0100, Meredith-Wilks, Richard wrote: [NOTE: Read throuhg the whole thing before commenting... --Dan] > set_time_limit(200); > $datafile = fopen ("text.txt", "r"); > while (!feof ($datafile)) { > $array = fgets($datafile, 1000000); fgets() produces a string, but you're saying it's an array. If you want to fill an array, do this: $array[] = fgets($datafile, 1000000); > if (trim($array)) { Trim() on an array??? NAY! > $count = count(explode($Seper, $array)); Your code doesn't show that $Seper has been set to anything. You run count on the array itslef, not the explode of array. OH! Are you trying to take a line that's delimited by a special character and count the number of "fields" in the line? In that case, back up. Use fgetcsv (http://www.php.net/manual/en/function.fgetcsv.php): $array = fgets($datafile, 1000000, $Seper); $count = count($array); Of course, you realize, the way this is set up makes the "echo $count" at the end only show the $count from the last line. To get the total from the whole file, do this $count += count($array); > } // end if $array > } // end while > fclose ($datafile); > echo $count; Also, you mentioned that the file is large. You may need to bump up the memory_limit. Now, if my later observation is correct about what you're trying to do, perhaps this is a simpler way to do what you're trying to do: $array = file('./text.txt'); $content = implode('', $array); echo substr_count($content, $Seper); Yeow! --Dan -- PHP classes that make web design easier SQL Solution | Layout Solution | Form Solution sqlsolution.info | layoutsolution.info | formsolution.info T H E A N A L Y S I S A N D S O L U T I O N S C O M P A N Y 4015 7 Av #4AJ, Brooklyn NY v: 718-854-0335 f: 718-854-0409

« previous php.general (#99088) next »