Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czy pusty plik?
rafcio8405
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Warszawa

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


Jak sprawdzić czy plik *.txt jest pusty?
Go to the top of the page
+Quote Post
AIRSKY
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.01.2004

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


mozna np wczytać go do tablicy poprzez file .. i sprawdzić czy $tablica[0] jest pusty czy nie ..
Go to the top of the page
+Quote Post
marlowe
post
Post #3





Grupa: Zarejestrowani
Postów: 178
Pomógł: 0
Dołączył: 2.11.2003
Skąd: Kraków

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


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

Ten post edytował marlowe 10.07.2004, 12:20:09
Go to the top of the page
+Quote Post
rafcio8405
post
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Warszawa

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


Dzięki wszystkie podpowiedzi działają (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
hwao
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




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
Go to the top of the page
+Quote Post
broU
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


a jeśli plik zawiera 10 enterów ? teoretycznie jest pusty , ale waży już nie 0 a np. 60 bajtów .
Go to the top of the page
+Quote Post
hwao
post
Post #7


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




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.
Go to the top of the page
+Quote Post
broU
post
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


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 .
Go to the top of the page
+Quote Post
hwao
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Jak juz Ci tak zalezy na tych enterach to mozes tak (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
marlowe
post
Post #10





Grupa: Zarejestrowani
Postów: 178
Pomógł: 0
Dołączył: 2.11.2003
Skąd: Kraków

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


@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

Ten post edytował marlowe 10.07.2004, 14:12:09
Go to the top of the page
+Quote Post
broU
post
Post #11





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


no dzięki za kody , pewnie kiedyś się przydadzą do użytku lub analizy [ hm , nie wiedziałem , że join to alias do imlode (: ] .
Go to the top of the page
+Quote Post

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: 25.09.2025 - 20:33