Re: Reading Text file by line
| From: | Ernest E Vogelsinger | Date: | Mon, 24 Feb 2003 16:51:52 +0000 |
| Subject: | Re: Reading Text file by line | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-136944@lists.php.net to get a copy of this message | ||
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/