Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie czy katalog jest pusty.
Forum PHP.pl > Forum > PHP
moto0095
Witam. Szukam w google i nic nie znalazłem.
Wiem ,że można sprawdzić czy katalog jest pusty w ten sposób:
  1. <?
  2. $dir = 'Katalog';
  3. $katalog = scandir($dir);
  4. if(empty($katalog)){
  5. echo 'Pusto';
  6. }
  7. ?>

tylko ,że ja potrzebuję pominąć tam jeden plik.

Czyli mam teką strukturę:
Cytat
Katalog/
config.php


i chcę aby wyświetliło się że katalog jest pusty mimo tego ,że jest tam plik config.php.

Proszę o pomoc. smile.gif

winksmiley.jpg

Wie ktoś jak to zrobić questionmark.gif questionmark.gif
bajt
http://www.php.net/manual/pl/function.scandir.php
Tutaj masz wyjaśnione.
przeleć pętlą po $katalog ignorując config.php
moto0095
Czytałem winksmiley.jpg

Ale jakoś nic mi do głowy nie przychodzi. sad.gif
tehaha
no samo nie przyjdzie, trzeba pomyślećsmile.gif

//a umiesz usuwać elementy z tablicy?
moto0095
Próbowałem tak:
  1. $katalog = scandir('katalog');
  2. foreach($katalog as $file){
  3. if($file != '.' && $file != '..' && $file != 'config.php'){
  4. if(empty($katalog)){
  5. echo 'Pusto';
  6. }else
  7. echo $file . '<br />';
  8. }
  9. }
  10.  

Ale to nie działa sad.gif
Proszę o pomoc .
tehaha
to może usuń te 3 elementy z tablicy i sprawdź wtedy ile elementów zawiera
moto0095
Usunąłem te 3 elementy i pokazało:
.
..
config.php

czyli wszystkie pliki. sad.gif

A ja chcę aby wyświetliło wszystkie pliki z katalogu oprócz tych właśnie trzech, a jeżeli katalog jest pusty, to aby pokazało "Pusty" (oczywiście te 3 pliki znajdują się zawsze więc chcę aby skrypt je ignorował).
tehaha
Cytat(moto0095 @ 7.05.2010, 21:50:11 ) *
(oczywiście te 3 pliki znajdują się zawsze więc chcę aby skrypt je ignorował).

dlatego usuń je z tej tablicy, a potem sprawdź ile elementów zawiera tablica
moto0095
Ok. Udało mi się zrobić coś takiego:
  1. $katalog = scandir('baza/uczniowie/'.$_SESSION['klasa_katalog']);
  2. foreach($katalog as $file){
  3. unset ( $katalog[0] );
  4. unset ( $katalog[1] );
  5. unset ( $katalog[2] );
  6. if(empty($katalog)){
  7. echo 'Pusto';
  8. }else{
  9. echo $file . '<br />';
  10. }
  11. }


tylko to wyświetla mi 3 razy Pusto:
PustoPustoPusto.
tehaha
sprawdzenie czy jest pusty zrób poza pętlą
moto0095
No to wtedy nic nie wyświetla sad.gif

Ma ktoś jakiś pomysł questionmark.gif
tehaha
zamiast empty użyj funkcji count() i policz ile jest elementów
moto0095
Dzięki. Poradziłem sobie. Zrobiłem tak (może się komuś przyda):
  1.  
  2. $katalog = scandir('katalog');
  3. if(count($katalog) < 4){
  4. echo 'Pusto';
  5. }else{
  6. foreach($katalog as $file){
  7. if($file != '.' && $file != '..' && $file != 'config.php'){
  8. echo $file . '<br />';
  9. }
  10. }
  11. }
jajcarzd1
MOżna by jeszcze użyć DirectoryIterator
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.