[PHP] Funkcja, która zlicza wszystkie wiersze w pliku, Jak zliczyć wiersze w pliku i wypisać ich ilość funkcją w php? |
[PHP] Funkcja, która zlicza wszystkie wiersze w pliku, Jak zliczyć wiersze w pliku i wypisać ich ilość funkcją w php? |
6.12.2021, 14:22:45
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 28.11.2021 Ostrzeżenie: (0%) |
Witam Chciałabym dowiedzieć się jak to zrobić, aby zliczyć wszystkie wiersze w pliku .txt i pokazać ilość tych wierszy? Załóżmy, że w pliku jest lista, która zawiera 12.000 wierszy. Chciałabym, aby funkcja w php zliczała ilość tych wierszy z pliku .txt i wypisała ich ilość.
Czy ktoś wie jak to zrobić? |
|
|
6.12.2021, 14:33:01
Post
#2
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
Tak, pobierasz listę wierszy (file), a następnie po prostu sprawdzasz wielkość tablicy (https://www.php.net/manual/en/function.count.php).
|
|
|
6.12.2021, 16:47:00
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Tu masz wiele ciekawych pomysłów: https://stackoverflow.com/questions/2162497...text-file-200mb
|
|
|
9.12.2021, 20:25:06
Post
#4
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 28.11.2021 Ostrzeżenie: (0%) |
Witajcie 😊
Trochę mnie nie było, bo oprócz tego, że interesuje się bardzo PHP to mam jeszcze życie prywatne 😊 Wracając do tematu, pisałam wcześniej tak: "Chciałabym dowiedzieć się jak to zrobić, aby zliczyć wszystkie wiersze w pliku .txt i pokazać ilość tych wierszy? Załóżmy, że w pliku jest lista, która zawiera 12.000 wierszy. Chciałabym, aby funkcja w php zliczała ilość tych wierszy z pliku .txt i wypisała ich ilość. Czy ktoś wie jak to zrobić?" Jeśli ktoś przeczytał ze zrozumieniem moją wypowiedź to zauważył, że chodzi mi, o funkcję (Zresztą w temacie napisałam konkretnie: "Funkcja, która zlicza wszystkie wiersze w pliku") Panowie "Pyton_000" i "Aras785" Dziękuję Wam za linki, ale nie przydały mi się. Stronę: stackoverflow.com omijam, ponieważ nie jest dobrym źródłem z uwagi na podsyłane błędne skrypty i przekopiowane w większości z różnych stron. Podają rozwiązania Grubo ciosane, a mi to nie odpowiada. Wolę zajrzeć do dokumentacji. Strona: https://www.php.net/manual/en/function.count.php jest dobrym źródłem, ale chyba nie do tego co ja chcę. Działania na tablicy odpadają (w moim zbiorze plików, którymi operuje nie ma dużych zasobów. A plików mam zaledwie ze dwadzieścia i wszystkie do testów przed rozpoczęciem pisania aplikacji) Pozwólcie, że sama odpowiem sobie na pytanie zadane w temacie, bo znalazłam odpowiedź Już ją użyłam i działa 😊 Ten post edytował AmyLokmart 9.12.2021, 20:26:38 |
|
|
9.12.2021, 20:50:28
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 838 Pomógł: 226 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
stackoverflow.com to nie jest strona z której bezwiednie należy kopiować kod. Tam zadają pytania ludzie którzy też mają różne problemy, a odpowiedzi dotyczą ich przypadków.
|
|
|
10.12.2021, 11:45:53
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Czyli jedeno z najgorszych rozwiązań.
|
|
|
13.12.2021, 00:50:36
Post
#7
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 28.11.2021 Ostrzeżenie: (0%) |
"Pyton_000" co Masz na myśli pisząc: "Czyli jedeno z najgorszych rozwiązań. "?
|
|
|
13.12.2021, 01:33:39
Post
#8
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
Cytat Trochę mnie nie było, bo oprócz tego, że interesuje się bardzo PHP to mam jeszcze życie prywatne 😊 nie wiem po co wgl. taka wstawka - każdy z nas ma życie prywatne i za pomaganie na forum nikt nam nie płaci Z resztą to Ty zadałaś pytanie - dajemy Ci propozycje, a zrobienie funkcji powinno należeć do Ciebie.. funkcja jest tylko wrapperem.. Cytat Jeśli ktoś przeczytał ze zrozumieniem moją wypowiedź to zauważył, że chodzi mi, o funkcję (Zresztą w temacie napisałam konkretnie: "Funkcja, która zlicza wszystkie wiersze w pliku") - tak dostałaś funkcję file oraz count..Cytat Panowie "Pyton_000" i "Aras785" Dziękuję Wam za linki, ale nie przydały mi się. Stronę: stackoverflow.com omijam, ponieważ nie jest dobrym źródłem z uwagi na podsyłane błędne skrypty i przekopiowane w większości z różnych stron. Podają rozwiązania Grubo ciosane, a mi to nie odpowiada. Wolę zajrzeć do dokumentacji. - stackoverflow jest jednym z najlepszych źródeł, dokumentacja jest ok ale jeśli robimy banalne rzeczy. Z czasem sama się o tym przekonasz. Strona: https://www.php.net/manual/en/function.count.php jest dobrym źródłem, ale chyba nie do tego co ja chcę. Działania na tablicy odpadają (w moim zbiorze plików, którymi operuje nie ma dużych zasobów. A plików mam zaledwie ze dwadzieścia i wszystkie do testów przed rozpoczęciem pisania aplikacji) Cytat Pozwólcie, że sama odpowiem sobie na pytanie zadane w temacie, bo znalazłam odpowiedź smile.gif - siedzę w phpie ponad 10 lat i w życiu nie widziałem tej funkcji ale jeśli spełnia Twoje oczekiwania to dobrze.Moje rozwiązanie
Ten post edytował aras785 13.12.2021, 01:42:13 |
|
|
13.12.2021, 12:29:15
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
"Pyton_000" co Masz na myśli pisząc: "Czyli jedeno z najgorszych rozwiązań. "? To że ładujesz cały plik do pamięci a potem jeszcze musisz wykonać dość kosztowną operacje znalezienia zapewne znaków nowej linii. Zrobiłem dla Ciebie pewien eksperyment. Kod: Kod <?php echo memory_get_usage()/1024 . "\n"; $start = microtime(true); $file = file_get_contents('/app/file.dat'); $out = substr_count($file, "\n"); var_dump($out, microtime(true)-$start); echo memory_get_usage()/1024 . "\n"; unset($file); echo memory_get_usage()/1024 . "\n"; echo '===='; $start = microtime(true); $file = new \SplFileObject('/app/file.dat', 'r'); $file->seek(PHP_INT_MAX); var_dump($file->key(), microtime(true)-$start); echo memory_get_usage()/1024 . "\n"; Wyniki: Kod 381.703125 int(4192957) float(0.8671538829803467) 1048961.875 ==== 381.8515625 int(4192957) float(0.6773262023925781) 398.40625 Dodam tylko że przykładowy testowany plik waży 1GB Ten post edytował Pyton_000 13.12.2021, 12:29:59 |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 03:51 |