On Fri, 22 Jun 2007 18:09:02 +0100 Tijnema wrote:
On 6/22/07, Andres Rojas <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I'm new in PHP programming and I have a problem with this script. I need
> to read a large file around 2Mb and several lines (28000). All start Ok,
> but suddenly the script stop without message error.
>
> <?php
> $fichero="62007lg.txt";
> $buffer = file($fichero);
> $lineas = count($buffer);
>
> foreach($buffer as $linea){
>
> list($day, $month, $year, $hour, $min, $temp, $hum, $dew, $baro,
> $wind, $gust, $wdir, $rlastm, $rdai, $rmon, $ryear,
> $heat)=sscanf($linea,"%d %d %d %d %d %f %d %f %f %d %d %d %f %f %f %f
%f \n");
>
> $mday[]=$day;
> $mmonth[]=$month;
> $myear[]=$year;
> $mhour[]=$hour;
> $mmin[]=$min;
> $mtemp[]=$temp;
> $mhum[]=$hum;
> $mdew[]=$dew;
> $mbaro[]=$baro;
> $mwind[]=$wind;
> $mgust[]=$gust;
> $mwdir[]=$wdir;
> $mrlastm[]=$rlastm;
> $mdai[]=$rdai;
> $mrmon[]=$rmon;
> $mryear[]=$ryear;
> $mheat[]=$heat;
> echo"$day $month $year $hour $min $temp $hum $dew $baro $wind $gust
> $wdir $rlastm $rdai $rmon $ryear $heat <br>";
> }
>
> ?>
>
> If only I print the variable $buffer all it's ok, but when I try to fill
> all the matrix the script doesn't work. If I reduce the number of matrix
> only a 3 o 4 it's Ok, but If I increase number of this matrix the script
> crash again.
>
> Perhaps it's a problem of memory of server, but my service provider say
> me that this is not the problem.
>
>
> Thank you very much
I don't know where the problem is, but I would use explode instead of
sscanf, so try if this code works:
<?php
$fichero="62007lg.txt";
$buffer = file($fichero,FILE_IGNORE_NEW_LINES); // Remove new lines in array
$lineas = count($buffer);
foreach($buffer as $linea){
$array = explode(" ",$linea);
$mday[]=$array[0];
$mmonth[]=$array[1];
$myear[]=$array[2];
$mhour[]=$array[3];
$mmin[]=$array[4];
$mtemp[]=$array[5];
$mhum[]=$array[6];
$mdew[]=$array[7];
$mbaro[]=$array[8];
$mwind[]=$array[9];
$mgust[]=$array[10];
$mwdir[]=$array[11];
$mrlastm[]=$array[12];
$mdai[]=$array[13];
$mrmon[]=$array[14];
$mryear[]=$array[15];
$mheat[]=$array[16];
echo"$array[0] $array[1] $array[2] $array[3] $array[4]
$array[5] $array[6] $array[7] $array[8] $array[9] $array[10]
$array[11] $array[12] $array[13] $array[14] $array[15] $array[16]
<br>";
}
?>
Tijnema
Thanks Tijnema for your code, but I have the same problem, the echo
doesn´t print all the values and stop without error message, why? perhaps
the file it's too long?
--
Vote for PHP Color Coding in Gmail! -> http://gpcc.tijnema.info
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php