Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]fopen() i fclose() w pętli
Forum PHP.pl > Forum > Przedszkole
chriswebber
Ze względu na wielkość plików odpadają takie funkcje jak file etc.

  1. <?php
  2. // Lista - nazwy plików w bieżącym katalogu
  3. $nazwa_pliku = glob('{*.unl}', GLOB_BRACE);
  4.  
  5. $liczba_plikow = array();
  6. $liczba_linii = array();
  7.  
  8. for ($i=0;$i<count($nazwa_pliku);$i++) {
  9.        $handle = fopen($nazwa_pliku[$i], &#092;"r\");
  10.            $j=0;
  11.                while (!feof($handle)) {
  12.                    $liczba_linii[$j] = fgets($handle, 3200);
  13.                    $j++;
  14.                }
  15.                $liczba_plikow[$i] = $i;
  16.        fclose($handle);
  17. }
  18. ?>


powinienem otrzymać 2 informacje:

tabelę: $liczba_linii - zawierajacą liczbę liniii w poszczególnych plikach
$liczba_plikow - zawierajacą liczbę plików

Niestety nie udaje mi się ponieważ pętla jest wykonywana tylko raz ( w katalogu plików o zadanym rozszerzeniu jest wiele )
Ponieważ przy użyciu fukcji file() nie mam problemów - to czy problem wynika ze specyfiki funkcji fopen() ?
hiszpanespaniol
oczywiście, że raz się wykona. zła jest konstrukcja cała. brakuje tez nawiasów i klamerek.
najpierw zczytaj za pomocą dir ilość plików w katalogu, później możesz tą wartość wstawić jako $i.
chriswebber
Racja - trochę w for() sięnie wkleiło sad.gif (( - przepraszam

poprawiłem:
  1. <?php
  2. var_dump($liczba_linii)
  3. ?>

Wynik funkcji:
array(2) {
[0]=>
string(10) "config.php"
[1]=>
string(10) "tester.php"
}
  1. <?php
  2. for ($i=0;$i
  3.    $handle = fopen($liczba_linii[$i], &#092;"r\");
  4.            $j=0;        
  5.            while (!feof($handle)) {
  6.                $liczba_linii_final[$i][$j] = fgets($handle, 3200);
  7.                $j++;
  8.            }
  9.        fclose($handle);
  10.    }
  11.  
  12. echo count($liczba_linii_final);
  13. ?>


a otrzymuje
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.