Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciaganie n lini z pliku, +podzial na strony
dem
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dem
post
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);
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 00:42