Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zliczenie wierszy funkcją fgetc()
Forum PHP.pl > Forum > Przedszkole
Robert1985
Witam wiem ,że można policzyć wiersze pliku za pomocą innych funkcji i potrafię to zrobić ,ale uparłem się na funkcję fgetc() ,żeby poćwiczyć jej używanie i niestety mój kod nie chce działać:
  1. <?php
  2. $licznik = 0;
  3.   $wskplk = fopen("$DOCUMENT_ROOT/../Zgłoszenia/Zgłoszenia.txt",'rb');
  4.    while (!feof($wskplk))
  5.                {
  6.    $znak = fgetc($wskplk);
  7.    if (!feof($wskplk))
  8.        {
  9.        if ($znak=="r\n") {echo ++$licznik;}
  10.        }
  11.    }
  12.    echo $licznik;
  13. ?>


Niestety echo wyświetla cały czas wartość 0 i nie wiem dlaczego.
wookieb
1) warunek w while i potem w if sa takie samo. Nie ufasz while?
2) fgetc pobiera 1 znak a sprawdzasz aż 2
  1. <?php
  2. if ($znak=="r\n")
  3. ?>


Po co robić sobie pod górkę?
Suh
Nie szukaj "\r\n", bo to są 2 białe znaki. "\r" to tzw. "powrót karetki" smile.gif Zaś samo "\n" to jest znak nowej linii.
Dlatego też w warunku $znak powinna być porównywana tylko z "\n".
erix
Cytat
Witam wiem ,że można policzyć wiersze pliku za pomocą innych funkcji i potrafię to zrobić ,ale uparłem się na funkcję fgetc() ,żeby poćwiczyć jej używanie i niestety mój kod nie chce działać:

Lepiej fgets" title="Zobacz w manualu PHP" target="_manual - czyli po to, po co została stworzona. Nie zdziwiłbym się, gdyby była szybsza niż ręczne przeszukiwanie każdego znaku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.