![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 7 Dołączył: 24.01.2006 Skąd: lublin/wawa Ostrzeżenie: (0%) ![]() ![]() |
Jestem w trakcie pisania downloadu opartego na pliach. Kazda kategoria ma swoj plik a w nim kazda linia ma odpowiednie informacje o pliku (url, nazwa,opis, itd). Mój problem nad którym myśle juz od dawna polega na tym jak stworzyć podział na strony oparty na ilosci wyciagnietych lini z pliku. Jak zrobić aby skrypt wyciąnął pierwsze n lini i zrobił podział na strony z taką samą ilością informacji opartych na kolejnych n lini? jeśli ktoś nie jest wstanie dać mi gotowca(a zauważyłem, że jesteście na to strasznie cieci - nie wiem dlaczego), to prosze chociąż o podanie mechanizmu działania i potrzebnych do tego funkcji (zestawienie tych funkcji)
pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 7 Dołączył: 24.01.2006 Skąd: lublin/wawa Ostrzeżenie: (0%) ![]() ![]() |
thnx
chyba juz rozwiazalem swoj problem: Cytat To rozwiązanie nie wymaga przechowywania w pamięci całego pliku. Jest to ważne przy jednoczesnej pracy wielu instancji tego skryptu. Zużycie całej pamięci fizycznej doprowadzi do korzystania z pamięci wirtualnej, przez co prędkość działania skryptu znacznie spadnie.
Złym pomysłem jest korzystanie z funkcji file() jeśli zachodzi potrzeba odczytania tylko jednej linii z pliku. Takie rozwiązanie: $plik = file('plik'); $szukana_linia = $plik[1]; jest bardzo nieefektywne. Wczytywany jest cały plik, podczas gdy potrzebna jest tylko jedna linia. Wydajniejszy jest poniższy kod. Wydajność zależy od wielkości pliku - np. dla pliku zawierającego 1000 linii zysk jest około 400-krotny. $fp = fopen('plik', 'r'); fgets($fp); $szukana_linia = fgets($fp); fclose($fp); |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 00:42 |