At 17:24 24.02.2003, Anthony spoke out and said:
--------------------[snip]--------------------
>I need to read a text file by line, if I open the file and use fgets() then
>it doesn't pick up the EOL corretly.  So I was planning on reading the whole
>file in with fread() and then breaking it up by EOL characters.  My question
>is, how do I do it?  What character do I search for in the string?  Anyone
>have a simple example on how to do this?  Thanks.
--------------------[snip]-------------------- 

A "line" is usually terminated by either <LF> (Unix-Style) or <CR><LF> (Win
style). I heard that some macies do it the other way round, terminating
with either only <CR> ot <LF><CR>.

If you don't know exactly how lines will be terminated, first use
str_replace to normalize the line terminations:

    $data = str_replace(array("\r\n", "\n\r", "\r", "\n"), "\n", $data);

then simple explode() the data to receive an array of lines:

    $arlines = explode("\n", $data);

You could also use preg_split to combine these operations:

    $arlines = preg_split("/(\r\n|\n\r|\r|\n)/s", $data);

Disclaimer: all untested.

-- 
   >O Ernest E. Vogelsinger 
   (\) ICQ #13394035 
    ^ http://www.vogelsinger.at/


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

Reply via email to