Jump to content

Archived

This topic is now archived and is closed to further replies.

battsb

Reading a txt file from bottom to top

Recommended Posts

Hi guys, I'm a semi-noob....rather a 'professional amateur', and I need alittle assistance with something. I'm surprised php doesn't have any built-in functions for reading a file LINE by LINE, from the bottom to the top, but I did see a few ways of doing it, using fseek()...but nothing that reads a file line by line....All the examples on the php.net site show it character by character. Any suggestions?

I'd think it'd be a pretty common needed task (to read from bottom to top), since files can be appended to at the bottom, meaning all the latest information starts at the bottom. Does anyone have any pointers? (pun not intended) :)

Share this post


Link to post
Share on other sites
file read to array - [a href=\"http://ca.php.net/manual/en/function.file.php\" target=\"_blank\"]http://ca.php.net/manual/en/function.file.php[/a]

then use count() for size of array to get the end element, etc.

reverse array might be useful to you as well - [a href=\"http://ca.php.net/manual/en/function.array-reverse.php\" target=\"_blank\"]http://ca.php.net/manual/en/function.array-reverse.php[/a]

Share this post


Link to post
Share on other sites
[!--quoteo(post=374436:date=May 16 2006, 05:26 PM:name=AndyB)--][div class=\'quotetop\']QUOTE(AndyB @ May 16 2006, 05:26 PM) [snapback]374436[/snapback][/div][div class=\'quotemain\'][!--quotec--]
file read to array - [a href=\"http://ca.php.net/manual/en/function.file.php\" target=\"_blank\"]http://ca.php.net/manual/en/function.file.php[/a]

then use count() for size of array to get the end element, etc.

reverse array might be useful to you as well - [a href=\"http://ca.php.net/manual/en/function.array-reverse.php\" target=\"_blank\"]http://ca.php.net/manual/en/function.array-reverse.php[/a]
[/quote]

I can't use that because the file can be up to 100Meg, which is why I need to read from the bottom up, because I will only need the bottom 1,000 lines (based on date) or so.

Eg of chronological log file contents
V,<date&time>,0,150
V,<dateTime>,0,14d
D,<dateTime>,0,16e

I need to get to the bottom 1,000 lines or so.....in <1 sec. Possible?

Share this post


Link to post
Share on other sites
[i]maybe[/i] - [a href=\"http://ca3.php.net/manual/en/function.fseek.php\" target=\"_blank\"]http://ca3.php.net/manual/en/function.fseek.php[/a] and take a look at the scriptlet posted by phil at NOSPAM dot blisswebhosting dot com

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.