Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy pusty plik?
Forum PHP.pl > Forum > Przedszkole
rafcio8405
Jak sprawdzić czy plik *.txt jest pusty?
AIRSKY
mozna np wczytać go do tablicy poprzez file .. i sprawdzić czy $tablica[0] jest pusty czy nie ..
marlowe
Wydaje mi się użycie funkcji filesize" title="Zobacz w manualu PHP" target="_manual jest tu najlepszym sposobem.
  1. <?php
  2. $plik = &#092;"plik.txt\";
  3. if(file_exists($plik))
  4. {
  5. if(filesize($plik)==0)
  6. echo &#092;"Plik jest pusty.\";
  7. else
  8. echo &#092;"Plik nie jest pusty.\";
  9. }
  10. else
  11. echo &#092;"Plik nie istnieje.\";
  12. ?>

Pozdrawiam.
Bartek
rafcio8405
Dzięki wszystkie podpowiedzi działają smile.gif
hwao
Cytat(AIRSKY @ 2004-07-10 13:14:30)
mozna np wczytać go do tablicy poprzez file .. i sprawdzić czy $tablica[0] jest pusty czy nie ..

Złe myślenie:
Kod
text

Czy taki plik jest pusty?
w 1 linij nic nie ma ale w rescie jest.
Odpowiedz marlowe jest poprawna
broU
a jeśli plik zawiera 10 enterów ? teoretycznie jest pusty , ale waży już nie 0 a np. 60 bajtów .
hwao
Cytat(broU @ 2004-07-10 14:19:12)
a jeśli plik zawiera 10 enterów ? teoretycznie jest pusty , ale waży już nie 0 a np. 60 bajtów .

Nie jest pusty poniewaz ma entery
Pusty plik = 0kb.
broU
no tak , ale pustość moze dla kogoś oznaczać brak , np. jakichkolwiek danych (:

wydaje mi się , że rozwiązanie AIRSKY też jest dobre . bo w przypadku pobrania takiego kodu jak ty podałeś hwao
Kod
text

po odczytaniu tego przez file() funkcja ta doda za pierwszą linią \n i linia juz wtedy pusta nie bedzie , więc też nie wykaże pustości pliku . tak mi się wydaje w każdym razie . jesli nie mam racji , to popraw mnie .
hwao
Jak juz Ci tak zalezy na tych enterach to mozes tak winksmiley.jpg
  1. <?php
  2. $url = 'plik.txt';
  3. $arrFile = File( $url );
  4.  
  5. foreach( $arrFile As $strLine )
  6. {
  7.  if( !empty( $strLine ) ) // tu mozesz dac wyrazenie regularne jak to nie wystarcza
  8.  {
  9.  $znaki = 'ma';
  10. break;
  11.  }
  12. }
  13.  
  14. if( $znaki == 'ma' )
  15. {
  16.  echo 'plik posiada cos poza enterami';
  17. }
  18. else
  19. {
  20.  echo 'plik ma tylko entery albo nic';
  21. }
  22. ?>
marlowe
@broU: Jeśli koniecznie chcesz sprawdzić czy plik zawiera jakieś znaki poza spacjami, enterami itd. to nalepiej chyba użyć czegoś takiego:
  1. <?php
  2. $plik = &#092;"plik.txt\";
  3. $file_cont = join(file($plik));
  4. if(ereg('[[:graph:]]',$file_cont))
  5. echo &#092;"Znaleziono możliwe do wydrukowania znaki w string.\";
  6. else
  7. echo &#092;"Nie znaleziono możliwych do wydrukowania znaków w string.\";
  8. ?>

Pozdrawiam.
Bartek
broU
no dzięki za kody , pewnie kiedyś się przydadzą do użytku lub analizy [ hm , nie wiedziałem , że join to alias do imlode (: ] .
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.