Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ścieżka do katalogu
Lombi
post 4.08.2006, 09:06:58
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

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


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. ?>


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post
hwao
post 4.08.2006, 09:34:08
Post #2


Developer


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




może tak...
  1. <?php
  2. function list_dir($chdir)
  3. {
  4. global $z;
  5. chdir($chdir);
  6. $handle = opendir($chdir);
  7. ?>
Go to the top of the page
+Quote Post
Lombi
post 4.08.2006, 09:52:10
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

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


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.


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post
nospor
post 4.08.2006, 09:55:10
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lombi
post 4.08.2006, 10:19:18
Post #5





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

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


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?

Ten post edytował Lombi 4.08.2006, 10:21:36


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post
nospor
post 4.08.2006, 10:39:24
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lombi
post 4.08.2006, 11:01:37
Post #7





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

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


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


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 11:46