Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zwrot zawartosci katalogu
Forum PHP.pl > Forum > Przedszkole
Gość_amator
mam taki skrypcik ktory mi zwraca do flesza zmienne o wartosci kolejnych plikow:

  1. <?php
  2. ini_set("max_execution_time",10);
  3. if ($_GET['kat']==null) die("no parameters passed");
  4. $i=0;
  5. if ($root=@opendir($_GET['kat'])){
  6. while ($file=readdir($root)){
  7. if ($file=="folder.php" || $file=="." || $file==".." || is_dir($file)){
  8. continue;
  9. }
  10. print("file".$i."=".$file."&");
  11. $i++;
  12. }
  13. }
  14. ?>


ale niestety zwraca mi rowniez nazy katalogow. nie znam sie zbytnio na php ale z tego co poczytalem to piwinno dzialac w tej formie. ktos wie co jest ni tak ?
podaje mu zmienna 'kat' - katalog ktory ma oblukac.
testuje go u siebie na apache2+php4.
nospor
przy sprawdzaniu katalogu musisc podac pelna sciezke do pliku/katalogu:
  1. <?php
  2. //....
  3. if ($file=="folder.php" || $file=="." || $file==".." || is_dir($root.'/'.$file)){
  4. continue;
  5. }
  6. //.....
  7.  
  8. ?>
Guest
hmmm.... dalej nie dziala, znaczy dalej zwraca rowniez katalogi.


moze mam zle zainstalowane albo wybrakowane php ?

pozdrawiam maciek p
nospor
a pokaz jak wyglada przykladowe $_GET['kat'].

bo moze zamiast:is_dir($root.'/'.$file) daj is_dir($root.$file)
NuLL
  1. <?php
  2.  
  3. $dir=glob($_GET['cat']."/*.*);
  4. foreach($dir as $el)
  5. {
  6. if(!is_dir($el))
  7. {
  8. echo $el."<br>";
  9. }
  10. }
  11.  
  12. ?>
Guest
link/folder.php?kat=folder
Guest
kombinowalem z tym skryptem od NuLL ale on mi zwraca folder/plik.txt a ja potrzebuje zeby mi zwracal tylko plik.txt
Wave
  1. <?php
  2. $dir=glob($_GET['cat']."/*.*);
  3. foreach($dir as $el){
  4. if(!is_dir($el)){
  5. echo $el."<br>";
  6. }
  7. }
  8. ?>

Po co tutaj is_dir?? Przecież wzorzec *.* zwraca _tylko_ pliki z rozszerzeniem.

Cytat
kombinowalem z tym skryptem od NuLL ale on mi zwraca folder/plik.txt a ja potrzebuje zeby mi zwracal tylko plik.txt

  1. <?php
  2. foreach( glob ( $_GET['cat'] . '/*.*') as $el )
  3. {
  4. echo str_replace($_GET['cat'] . '/', '', $el).'<br />';
  5. }
  6. ?>
Guest
oki to mam cos takiego :
  1. <?php
  2. $i=0;
  3. foreach( glob ( $_GET['cat'] . '/*.*') as $el )
  4. {
  5. print('file'.$i.'='.str_replace($_GET['cat'] . '/', '', $el).'&');
  6. $i++;
  7. }
  8. ?>

i juz tylko chcialem wiedziec czy jest i ewentualnie jak roznica miedzy print a echo.
jak juz wspomnialem dzialm na nim z flesza jesli to jakas roznica.

pozdrawiam i wielkie dzieki za pomoc !
maciekp
NuLL
Nie ma zadnej.
Guest
fajnie dzieki i jeszcze jedno male pytanko :
jak zrobic zeby zwracalo tylko katalogi ?
Guest
zrobilem cos takiego i nie mam zielonego pojecia czemu nie dziala worriedsmiley.gif
  1. <?php
  2. ini_set("max_execution_time",10);
  3. if ($_GET['kat']==null) die("no parameters passed");
  4. $i=0;
  5. if ($root=@opendir($_GET['kat'])){
  6. while ($file=readdir($root)){
  7. if (is_dir($file) && $file!='.' && $file!='..'){
  8. print("file".$i."=".$file."&");
  9. $i++;
  10. }
  11. }
  12. }
  13. ?>

nic ale to kompletnie nic nie zwraca...
Guest
oki.. no widze ze nikt nie wie gdzie lezy problem w tym skryocie wiec moze zamiast warunku is_dir($file) wstawic sprawdzanie czy $file zawierta znak '.' co by wykluczalo zarowno '.', '..' jak i pliki.
jest jakis sposob by sprawdzic czy $file zawiera kropke (.) ?
Gość_amator
no wiec zrobilem skrypcik ktory zwraca tylko katalogi jak by ktos kiedy szukal :
  1. <?php
  2. ini_set("max_execution_time",10);
  3. if ($_GET['kat']==null) die("no parameters passed");
  4. $i=0;
  5. if ($root=opendir($_GET['kat'])){
  6. while ($file=readdir($root)){
  7. if (!strpos( $file, '.' ) && $file!='..' && $file!='.'){
  8. print("file".$i."=".$file."&");
  9. $i++;
  10. }
  11. }
  12. }
  13. ?>


pozdrawiam i dzieki za wszelka pomoc
maciek p
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.