Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ścieżka do katalogu
Forum PHP.pl > Forum > Przedszkole
Lombi
Wstyd mi prosić trzeci raz o pomoc w ciągu dwóch dni ale wyglada na to że sam nie dam rady,ponieważ po moich zmianach skrypt nie działa ;(
A mianowicie chodzi o to żeby skrypt czytał katalogi z katalogu który mu podam a nie z tego w ktorym sie znajduje!
Czy ktoś ma jakieś pomocne sugestie?

  1. <?php
  2.  
  3. $z = 1;
  4. function list_dir($chdir)
  5. {
  6. global $z;
  7. chdir($chdir);
  8. $handle = opendir('.');
  9.  
  10. if ($z==1) 
  11. {
  12. $somepath2 = str_replace ("../", "/", $chdir);
  13. echo "<option value=".$somepath2.">.".$somepath2."</option><br>n";
  14. //echo "./" . $chdir . "<br>";
  15. $z = 0;
  16. }
  17. while ($file = readdir($handle))
  18. {
  19.  
  20. if(is_dir($file) && $file != "." && $file != "..")
  21. {
  22. $sdirs[] = $file;
  23. }
  24. }
  25. for($i=0; $i<sizeof($sdirs); $i++)
  26. {
  27. $basedir = realpath($sdirs[$i]);
  28. $b1 = str_replace ("" , "/", $basedir);
  29. $b2 = str_replace ("$chdir", ".", $b1);
  30. echo "<option value='".$b1."'>".$b2."</option><br>n";
  31. list_dir($sdirs[$i]);
  32. chdir("..");
  33. }
  34. }
  35.  
  36. list_dir(".");
  37.  
  38. ?>
hwao
może tak...
  1. <?php
  2. function list_dir($chdir)
  3. {
  4. global $z;
  5. chdir($chdir);
  6. $handle = opendir($chdir);
  7. ?>
Lombi
Ale jeśli wstawie $chdir zamiast '.' otwiera też katalog w ktorym się znajduje tyle że bez podkatalogów.
A mnie zależy na otwarciu innego katalogu niz tego gdzie jest plik wraz z podkatalogami.
nospor
@hwao Twoja zmiana jest bledna. Przeciez jak da chdir() to juz zmieni mu sie katalog. Otworzerzenie teraz $chdir bedzie otwieralo katalog o nazwie $chdir w katalogu juz $chdir smile.gif (teraz lombi podawal kropke to jakso to dzialalo, ale jak poda normalna nazwe to bedzie problem).

@Lombi ale przeciez ty ten skrypt wywolujesz o tak: list_dir(".");
Czyli wywolujesz go dla aktualnego katalogu. Chcesz by ci czytal innny katalog to musisz mu to powiedziec...
list_dir("innykatalog/jeszczeinnykatalog"); itd
Lombi
Dzięki NOSPOR to działa tak jak chce, tylko powiedz mi jeszcze czemu jesli w katalogu który czyta jest pusty katalog (w sensie nie ma w nim kolejnego) to pokazuje ./nazwa katalogu a jesli katalog ma podkatalogi to pokazuje pełną jego ścieżkę. Czy z tym da się coś zrobić? I czemu pokazuje kropke na początku?
nospor
Powiem krótko: juz dawno nie widzialem tak zamotanego skryptu....
Prosze:
  1. <?php
  2. function listDir( $dir )
  3. {
  4. $countFiles = 0;
  5. $dirList[] = $dir;
  6. echo realpath($dir).'<br />';
  7. while ( ( $currDir = array_pop( $dirList ) ) !== NULL )
  8. {
  9. $dir = opendir( $currDir );
  10. while( ( false !== ( $file=readdir( $dir ) ) ) )
  11. {
  12. if( $file =="." || $file == ".." )
  13. {
  14. continue;
  15. }
  16.  
  17. $fullName = realpath($currDir . '/' . $file);
  18.  
  19. if( is_dir ( $fullName ) )
  20. {
  21. array_push ( $dirList, $fullName );
  22. echo $fullName.'<br />';
  23. continue;
  24. }
  25.  
  26.  
  27. }
  28.  
  29. closedir($dir);
  30. }
  31. }
  32.  
  33. listDir('tuTwojkatalog');
  34. ?>

Nie powinoo byc bledow, pisalem na szybko
Lombi
Niestety to nie działa sad.gif
Przynajmniej u mnie to nie działa.
Może nie napisałem wszystkiego:
chodzi o to że ten skrypt umieszczony jest wewnatrz pola

  1. <?php
  2. <select>
  3. Skrypt 
  4. </select>
  5. ?>


i tu ma wczytywać liste katalogów.

Czy to jakaś różnica?

NOSPOR-KU ja ten skrypt wziołem z tego forum. Przecież nie wygladam na takiego który w tym stadium nauki potrafi sam napisać coś takiego winksmiley.jpg
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.