Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: readdir?
Forum PHP.pl > Forum > PHP
neo.priv
Witam,
chce wyswietlic z okreslinego katalogu konkretny plik.
Robilem to przez opendir i readdir ale tu wyswietla mi cala zawartosc katalogu.

Sprobowalem poprzez fread i nic, wyswietlil mi zawartosc pliku.

Ja chcialbym zapytać w jaki sposob wysietlic nozwe i rozszerzenie konkretnego pliku?

1.
  1. <?php
  2.  
  3. $dir = '../pliki/';
  4. $start = opendir($dir);
  5. while ($file = readdir($start)){
  6. if($file!="." && $file!=".." && $file!="sys" && $file!="cgi-bin" && !is_dir($file)) {
  7.  
  8. echo "<a href="?file=$file&usun=usun">$file</a><br />";
  9. };
  10. };
  11.  
  12. ?>


2.
  1. <?php
  2.  
  3. [php]
  4. $dir = '../pliki/'$zdjeceiedytuj;
  5. $start = opendir($dir);
  6. while ($file = readdir($start)){
  7. if($file!="." && $file!=".." && $file!="sys" && $file!="cgi-bin" && !is_dir($file)) {
  8.  
  9. echo "<a href="?file=$file&usun=usun">$file</a><br />";
  10. };
  11. };
  12.  
  13. ?>

Kod
Warning: opendir(../pliki/1111.rtf): failed to open dir: To nie jest katalog in /home/httpd/vmhosts/test.php on line 265

Warning: readdir(): supplied argument is not a valid Directory resource in /home/httpd/vmhosts/test.php on line 266
dr_bonzo
is_file()
is_dir()
path_info()

Co chcesz w ogole osiagnac? Zawartosc pliku czy rozszerzenie?
zbig13
Pisał, że chce uzyskać nazwe i rozszerzenie. A co do punktu 2, to co przekazujesz do zmiennej $zdjeceiedytuj ?
nospor
jak to co? 1111.rtf - widac wyraźnie jak na dloni.
i ciekawe czemu nie dziala? tongue.gif

@neo.priv masz zapodac katalog a nie plik do funkcji opendir. pozatym to co chcesz osiagnac juz bylo wiele razy na forum. poszukaj
neo.priv
Poradzilem sobie z wypisaniem nazwy pliku, tzn dodalem jeden warunek w petli while:
  1. <?php
  2.  
  3. while ($file = readdir($start)) {
  4. {
  5. if($file!="." && $file!=".." && $file!="sys" && $file!="cgi-bin" && !is_dir($file) && $file = $zdjecieedytuj) {
  6.  
  7. echo "<a href="?file=$file&usun=usun">$file</a><br />";
  8. };
  9.  
  10. };
  11.  
  12. };
  13.  
  14. ?>


JEdnak teraz petla wywala mi cala zawartosc folderu pod wymagana przezemnie nazwa pliku, innymi slowy pliki sie dubluja.

Chciałbym wyswietlic tylko jeden plik.
Probowalem uzyc petli for i tam ograniczyc liczbe wySwietlanych plikow lecz nie za bardzo mi to wychodzi, mam komunikat:
Kod
Parse error: parse error, unexpected T_INC, expecting ';'
nospor
  1. <?php
  2. ... $file = $zdjecieedytuj
  3. ?>
ten warunek jest zawsze spelniony bo to nie jest porownanie, a przypisanie.
powinno byc
  1. <?php
  2. ... $file == $zdjecieedytuj
  3. ?>


a pozatym jesli chcesz tylko ten plik wyswietlic to poco leciec po calym katalogu? uzyj funkcji file_exists() i po sprawie
splatch
Hm... sprawdz:
$start = opendir(realpath('../pliki/'));
while( $file = readdir($start)) { ... }
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.