Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] czytanie lini z pliku - file i fgets
Radeqq
post 10.05.2008, 08:48:26
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 10.05.2008

Ostrzeżenie: (0%)
-----


Na pewnej stronie przeczytałem, że funkcja file() jest bardzo nieefektywna jeśli chcemy pobrać tylko jedną linię z pliku. Doradzają zastosowanie:


  1. <?php 
  2.   $fp = fopen('plik', 'r'); 
  3.   fgets($fp); 
  4.   $szukana_linia = fgets($fp); 
  5.   fclose($fp); 
  6. ?>




Tylko nie mam pojęcia co zrobić aby wyświetlić np. całą trzecią linię. $szukana_linia[0] zwraca mi pierwszą literę drugiej lini.

Dziękuję za pomoc i pozdrawiam.
Go to the top of the page
+Quote Post
wieprzucpp
post 10.05.2008, 09:42:08
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 2
Dołączył: 10.02.2006

Ostrzeżenie: (0%)
-----


http://php.net.pl/manual/pl/function.fgets.php
pierwszy przykład przerobiłem tongue.gif

  1. <?
  2. $uchwyt = @fopen ("aaa.txt", "r");
  3.  
  4. if ($uchwyt)
  5. {
  6. $x=0;
  7. while (!feof($uchwyt))
  8. {
  9. $buffer[$x] = fgets($uchwyt, 4096);
  10. $x++;
  11. }
  12. fclose ($uchwyt);
  13. }
  14.  
  15. echo("$buffer[2]");
  16. ?>


pozdro
Go to the top of the page
+Quote Post
Pilsener
post 10.05.2008, 10:10:25
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $buffer[$x] = fgets($uchwyt, 4096);
  3. ?>
- w czym to ma być lepsze od file? Przecież to funkcja file, napisana przy pomocy while+fgets, więc na pewno to rozwiązanie jest mniej wydajne od file. Jak chcesz wczytać określoną liczbę linii z pliku:

  1. <?php
  2. $uchwyt = fopen($pliczek,'r');
  3.  while(!feof($uchwyt)){
  4. $linia = rtrim(fgets($uchwyt));
  5. $licznik++;
  6. if($licznik>$od && $licznik<=$do){
  7.  $tabliczka[] = $linia;
  8. }
  9.  }
  10.  fclose($uchwyt);
  11. ?>
- $od i $do to numery rekordów, do tablicy $tabliczka wczytywane są tylko te rekordy, które chcesz wyświetlić.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:04