![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 3 Dołączył: 15.10.2008 Skąd: Internet Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób mogę wyświetlić np. tylko 100 linii pliku?
Do wyświetlania używam kodu, który czyta mi plik od końca:
I chciałbym wyświetlić tylko 100 linii, a nie wszystkie jeżeli będzie więcej. W jaki sposób można takie coś uzyskać? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli możesz sobie pozwolić na wczytanie całego pliku do pamięci to wystarczy, że do obecnego kodu dodasz array_slice i po sprawie. Jeśli jednak plik jest duży, będziesz musiał odczytywać go po kawałku każdorazowo zliczając ilość wczytanych linii. Po osiągnięciu 100 przerywasz dalsze wczytywanie.
Ten post edytował Crozin 11.09.2011, 10:01:37 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 3 Dołączył: 15.10.2008 Skąd: Internet Ostrzeżenie: (0%) ![]() ![]() |
A jak zrobić jeszcze z tym odwróceniem, żeby od końca czytało?
:] |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No to możesz zrobić tak jak Crozin napisał
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 3 Dołączył: 15.10.2008 Skąd: Internet Ostrzeżenie: (0%) ![]() ![]() |
Ale jeżeli plik ma ponad 1-2GB?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No to wtedy możesz spróbować zastosować taki kod:
W skrypcie użyto unixowego polecenia tac , może to nie wszędzie działać |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 3 Dołączył: 15.10.2008 Skąd: Internet Ostrzeżenie: (0%) ![]() ![]() |
Kurcze, wolałbym bez tmp :/
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
dlaczego?
Tu masz jeszcze kilka funkcji, różne dla różnego rozmiaru pliku txt http://mydebian.blogdns.org/?p=197 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@cycofiasz: Tworzenie kopii pliku z poziomu konsoli jest nieco bezsensowne, szczególnie w przypadku gdy ma się do dyspozycji takie narzędzia jak tail, które robią dokładnie to czego oczekuje autor wątku.
Jeżeli rozwiązanie miałoby być zrobione niejako w czystym PHP wtedy trzeba będzie nieco zmodyfikować kod. Odczytywać zawartość po kawałku od tyłu (filesize, fopen, fread, fseek(!)), wyszukiwać w tych kawałkach nowych linii (strpos) uwzględniając fakt, że mogą one być zapisane na trzy różne sposoby (\r, \n, \r\n). I tak aż do momentu znalezienia setnej linii bądź cofnięcia się do samego początku pliku. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 21:56 |