Actually, there appears to be a solution on the PHP.web
[http://www.php.net/manual/en/function.fgets.php]

"Note: The length parameter became optional in PHP 4.2.0, if omitted, it would
assume 1024 as the line length. As of PHP 4.3, omitting length will keep reading
from the stream until it reaches the end of the line. If the majority of the
lines in the file are all larger than 8KB, it is more resource efficient for
your script to specify the maximum line length. "

Thanks :-)

Matt Vos wrote:

> Loop an fgets()
>
> i.e.
> $fp = fopen($file)
> while ($filerow = fgets($fp,1024)) /* Read 1024 bytes or to EOL, whichever
> is first) */
> {
>      $filerow = str_replace("; ","", $filerow);
>      $filerow = str_replace("# ","", $filerow);
>      $filerow = str_replace("\r","", $filerow);
>      $size = strlen($filerow);
>      $row_split = preg_split("/\s+/", $filerow);
>
>      $value1 = $row_split[0];
>      $value2 = $row_split[1];
>      $value3 = $row_split[2];
> }
>
> Matt
> ----- Original Message -----
> From: Lee P. Reilly <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, November 26, 2002 2:58 PM
> Subject: [PHP] Upload problem - PC, *nix, and Max EOL characters
>
> > Hi everyone,
> >
> > I have an application, where users can upload data files formatted as
> > follows:
> >
> >     0.0106375           686.601            65.391
> >     0.01147           606.467            54.997
> >     0.0122815           640.284           46.5355
> >     0.0130753           668.396           39.3671
> >     0.0138809            690.05           34.6031
> >     0.0146936           619.947           30.5329
> >     0.0155071           640.413           26.9145
> >
> >
> > My code deals with the uploaded files by splitting the lines into an
> > array, and then obtaining the 3 particular fields from the array
> > elements. My code is something like this:
> >
> > -=-= BEGIN CODE =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > // put each line of the file into an array
> > $filearray = file($file);
> >
> > // parse the file one line... at... a... time
> > while (list(,$oneline) = each($filearray))
> > {
> >   // if the line starts with ";" or a "#"...
> >   if ($oneline[0]==";" || $oneline[0]=="#")
> >   {
> >     // take out the ";" and EOL characters
> >     $oneline = str_replace("; ","", $oneline);
> >     $oneline = str_replace("# ","", $oneline);
> >     $oneline = str_replace("\r","", $oneline);
> >     $size = strlen($oneline);
> >   }
> >
> >   /* Some IQ files seperated columns by tabs; others, by whitespace.
> >      We parse the data file are delimit the columns by 'X9728430182298Z'
> >      (a random string), which will allow the program to recognise the
> > start
> >      and end of each column.
> >
> >     e.g.
> >     0.00542           8691.64           901.605
> >     0.006775            9381.3           1235.78 becomes...
> >
> >     0.00542X9728430182298Z8691.64X9728430182298Z901.605
> >     0.006775X9728430182298Z9381.3X9728430182298Z1235.78
> >   */
> >
> > $oneline = ltrim($oneline);
> > $oneline = preg_replace("/\s+/", "X9728430182298Z", $oneline);
> > $text = explode ("X9728430182298Z", $oneline); // now element [0] = Q,
> > [1] = I. [2] = Error
> >
> > -=-= END CODE =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> >
> > This works perfectly well when the data is uploaded from a PC, but it
> > fails when it's uploaded from Mac/Unix. When I vied the uploaded file
> > the EOL characters *appear* as "
> > ", which I believe is actually "\n". When I output the contents of
> > $filearray[0] (uploaded via a PC) I get one line, but when I ouput
> > $filearray[0] from a file uploaded via a Mac I get the entire file.
> > Therefore the problem occurs with:
> >
> > $filearray = file($file);
> > while (list(,$oneline) = each($filearray))
> >
> > I thought I had found a solution to the problem on the web* where I
> > found the following extract of php.ini file:
> >
> > --------------------------
> > ; If your scripts have to deal with files from Macintosh systems,
> > ; or you are running on a Mac and need to deal with files from
> > ; unix or win32 systems, setting this flag will cause PHP to
> > ; automatically detect the EOL character in those files so that
> > ; fgets() and file() will work regardless of the source of the file.
> > ; auto_detect_line_endings = Off
> > --------------------------
> >
> > However, this never solved the problem.
> >
> > The file itself is stored in a database, so how can I get rid of the EOL
> > characters before it is being inserted? Is there a function to change
> > the Unix EOL chars to PC EOL chars?
> >
> > Thanks in advance.
> >
> > - Best regards,
> >    Lee Reilly
> >
> >
> *[http://216.239.33.100/search?q=cache:GwerlDVFv8wC:linux.sarang.net/ftp/mir
> ror/development/language/php_cvs/php4/php.ini-dist+MAC+EOL+character+PHP&hl=
> en&ie=UTF-8]
> >
> > --
> > Lee P. Reilly,                                          ms:G758
> > Szilard Resource,                              tel:505-665-7025
> > Bioscience Division,
> > SM-30 Bikini Atoll Rd,
> > Los Alamos National Laboratory,         mailto:[EMAIL PROTECTED]
> > Los Alamos, NM 87545.              http://home.lanl.gov/lreilly
> >
> >           "Quidquid latine dictum sit, altum viditur"
> >
> > -._    _.--'"`'--._    _.--'"`'--._    _.--'"`'--._    _
> >     '-:`.'|`|"':-.  '-:`.'|`|"':-.  '-:`.'|`|"':-.  '.` : '.
> >   '.  '.  | |  | |'.  '.  | |  | |'.  '.  | |  | |'.  '.:   '.  '.
> >   : '.  '.| |  | |  '.  '.| |  | |  '.  '.| |  | |  '.  '.  : '.  `.
> >   '   '.  `.:_ | :_.' '.  `.:_ | :_.' '.  `.:_ | :_.' '.  `.'   `.
> >          `-..,..-'       `-..,..-'       `-..,..-'       `         `
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >

--
Lee P. Reilly,                                          ms:G758
Szilard Resource,                              tel:505-665-7025
Bioscience Division,
SM-30 Bikini Atoll Rd,
Los Alamos National Laboratory,         mailto:[EMAIL PROTECTED]
Los Alamos, NM 87545.              http://home.lanl.gov/lreilly

          "Quidquid latine dictum sit, altum viditur"

-._    _.--'"`'--._    _.--'"`'--._    _.--'"`'--._    _
    '-:`.'|`|"':-.  '-:`.'|`|"':-.  '-:`.'|`|"':-.  '.` : '.
  '.  '.  | |  | |'.  '.  | |  | |'.  '.  | |  | |'.  '.:   '.  '.
  : '.  '.| |  | |  '.  '.| |  | |  '.  '.| |  | |  '.  '.  : '.  `.
  '   '.  `.:_ | :_.' '.  `.:_ | :_.' '.  `.:_ | :_.' '.  `.'   `.
         `-..,..-'       `-..,..-'       `-..,..-'       `         `



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to