[PHP] detecteren dir of bestand

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Qdance
  • Registratie: September 2002
  • Laatst online: 17-12-2023
Hallo,

Tijdens het ontwikkelen van een online fotoalbum liep ik tegen het probleem op dat wanneer ik een map met foto's via ftp toevoegde deze niet verscheen op de site omdat ik de structuur netjes wegschreef in een database...nu wil ik een php script maken wat zelf in kan lezen welke directories of bestanden aanwezig zijn en aan de hand daarvan de structuur toont.

Maar helaas loopt mijn plan al bij een van de eerste stappen vast. Ik heb onderstaande script gemaakt en de bedoeling is dat het aangeeft of iets een bestand of map is maar mijn code beweert dat het altijd bestanden zijn?!!?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <?php
    //open directory
    $open = opendir ("../../admin");

    //lees directory in 
    while ($bestand = readdir ($open)) {
      
      //controleer op . en ..
      if ($bestand != "." && $bestand != "..") {
        
        //dir of bestand? Voer actie uit
        if (is_dir ($bestand)) {
          echo 'dir: '.$bestand.'<br>';
        } else {
          echo 'bestand: '.$bestand.'<br>';
        }

      }

      }
      closedir ($open);
  ?>

Acties:
  • 0 Henk 'm!

Verwijderd

Kan zijn dat ik het fout heb maar volgens mij moet je bij is_dir het gehele path meegeven.
Dus de map bij open_dir + file.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Je moet het pad en de bestandsnaam opgeven.

[ Voor 14% gewijzigd door Y0ur1 op 30-03-2005 13:09 ]


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Toevallig een functie voor gemaakt :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function tree($dir) 
{
# This functions walks trough a specified directory in the webfolders. A definition list is returned 
# with links to all images. Other files are shown in plain text.

# INPUT: a folder place in the web accessible directory (either /var/www/dir/pict or /dir/pict) 
# OUTPUT: a definition list representing the filesystem tree with links to all images found


//format $dir into the right format
$dir = (is_dir($dir)) ? $dir : $_SERVER["DOCUMENT_ROOT"] .$dir;
$dir = rtrim($dir, '/') .'/';

$webdir = substr($dir, strlen($_SERVER["DOCUMENT_ROOT"]));

if (!is_dir($dir)) { return 'Directory doesn't exist'; }

$output = "<dl>\n"; //output in definition lists

$handle=opendir($dir);
while (false!==($file = readdir($handle)))
{ 
    if ($file != "." && $file != "..") 
    {
        $output .= " <dt>";
        if (is_dir($dir .$file))
        {
            $new_dir = $dir .$file .'/';
            $output .= 'DIR:' .$file ."</dt>\n <dd>";
            $output .= tree($new_dir) .'</dd>'; //Recurse subdirectories 
        } else {
            $output .= (getimagesize($dir. $file)) ? '<a href="' .$webdir .$file .'">' .$file .'</a>' : $file;
            $output .= '</dt>';
        }
      $output .= "\n";
    } 
}
closedir($handle);

$output .= "</dl>\n";
return $output;
}


Met de output van mijn "got-mapje" op de server: *klik*

[ Voor 16% gewijzigd door T-MOB op 30-03-2005 13:17 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Qdance
  • Registratie: September 2002
  • Laatst online: 17-12-2023
Ik lees het nu ook ...het volledige pad is nodig om is_dir te kunnen gebruiken.
Ga m'n script even aanpassen ..bedankt voor de reacties!

_/-\o_ _/-\o_ _/-\o_