Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] readdir - sprawdzanie czy katalog istnieje
Forum PHP.pl > Forum > Przedszkole
minimalmusic
witam serdecznie.

wyciągam z katalogu zdjęcia w taki sposób :

  1. $home_dir = "dziewczyny/$nazwisko/";
  2. $path = stripslashes($path);
  3.  
  4. $open = opendir($home_dir.$path);
  5. for($i=0;($file = readdir($open)) != false;$i++)
  6. if (is_file($home_dir.$path.$file))
  7. $files[$i] = $file;
  8. closedir($open);
  9.  
  10. sort($files,SORT_REGULAR);
  11.  
  12. foreach($files as $key => $value) {
  13. $mod[$value] = filemtime($home_dir.$path.$value);
  14. }
  15.  
  16. arsort($mod);
  17.  
  18. $tab = array();
  19. if ($files) foreach($mod as $key=>$value) {
  20. array_push($tab, "$key");
  21. }
  22.  
  23. $output .= "&pierwsza=\"" . $tab[0] . "\"&zmienna=" . implode("|",$tab);
  24.  
  25. echo $output;

( wybaczcie, ze umiescilem kod w znacznikach html, ale jak wrzucilem w php, to pododawał \" wszedzie.. )
i wszystko działa dokładnie tak jak powinno..
natomiast gdy nie istnieje katalog podany w zmiennej $nazwisko, to wywala całą masę błędów.. :

  1. Warning: opendir(dziewczyny/cokolwiek/): failed to open dir: No such file or directory in adres/plik.php on line 6
  2.  
  3. Warning: readdir(): supplied argument is not a valid Directory resource in adres/plik.php on line 7
  4.  
  5. Warning: closedir(): supplied argument is not a valid Directory resource in adres/plik.php on line 10
  6.  
  7. Warning: sort() expects parameter 1 to be array, null given in adres/plik.php on line 12
  8.  
  9. Warning: Invalid argument supplied for foreach() in adres/plik.php on line 14
  10.  
  11. Warning: arsort() expects parameter 1 to be array, null given in adres/plik.php on line 18


jak mam poprawić ten kod, żeby w takim przypadku skrypt zwrócił TYLKO np. "Podany katalog nie istnieje.." ??
sf
a probowales zrobic tak jak jest w manualu questionmark.gif? http://php.net/opendir
Gość
no tak.. przepraszam najmocniej, byla juz 4 godzina wczoraj i mialem dosyc php ;-)

chcialem isc na latwizne i spytac kogos, zeby odwalil za mnie robote..

a sprawa jest rzeczywiscie banalna, przynajmniej jak na rześki poranny umysl ;]

  1. $home_dir = "dziewczyny/$nazwisko/";
  2. $path = stripslashes($path);
  3.  
  4. if (is_dir($home_dir)) {
  5. if ($open = opendir($home_dir.$path)) {
  6. for($i=0;($file = readdir($open)) != false;$i++)
  7. if (is_file($home_dir.$path.$file)) {
  8. $files[$i] = $file;
  9. }
  10. closedir($open);
  11. }
  12. sort($files,SORT_REGULAR);
  13. foreach($files as $key => $value) {
  14. $mod[$value] = filemtime($home_dir.$path.$value);
  15. }
  16. arsort($mod);
  17. $tab = array();
  18. if ($files) foreach($mod as $key=>$value) {
  19. array_push($tab, "$key");
  20. }
  21. $output .= "&pierwsza=\"" . $tab[0] . "\"&zmienna=" . implode("|",$tab);
  22. }
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.