[php] Een directory list maken mbv PHP

Pagina: 1
Acties:

  • falcon4ever
  • Registratie: Oktober 2001
  • Laatst online: 25-08 23:36
Hoi daar,

Ik wou voor mijn site een directory listing maken alleen lukt dat nog niet echt. Momenteel heb ik een site op concepts.nl en daar zie je niet echt een verschil tussen bestanden en files. Ik wil zo'n lijst als in de normale browser zien. Een plaatje voor een mapje als het een map is een ander plaatje als het een bestand is. En het lieft moet er dan ook nog een bestands grootte achter staan.

vb.

op concepts.nl ziet het er nu zo uit:

map1
bestand1.doc
bestand2.doc
map2
bestand3.doc
map3
bestand4.doc

en ik zou het graag zo willen hebben:
(plaatje map) map1
(plaatje map) map2
(plaatje bestand) bestand1.doc 20 kb
(plaatje bestand) bestand2.doc 1 MB
(plaatje bestand) bestand3.doc 450 kb
(plaatje bestand) bestand4.doc 1,5 mb

(en dit alles moet met php want cgi scripts zijn niet toegestaan op concepts.nl :( )

Wie helpt mij,

laurence

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 19:03
[topic=213722/1/25]
[search=directory php]

Overigens zie ik ook geen verschil tussen bestanden en files ;)

Verwijderd

MBV is_dir(inhoud van dir) kun je kijken of het een bestand of een directory is (is_file(inhoud van dir) kan natuurlijk ook).

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

och, zo moeilijk is dat niet ;)

je zou (als het op een linuxbak draait) met de backtic operator, wat explode() acties en de syntax van het linuxcommando 'ls' heel wat gekke dingen doen....

Klaar voor een nieuwe uitdaging.


Verwijderd

falcon4ever: Ik wou voor mijn site een directory listing maken alleen lukt dat nog niet echt.
Misschien dat dit helpt?

edit: Niet met IIS natuurlijk...

Verwijderd

En inderdaad, apache doet dit zelf al goed

  • falcon4ever
  • Registratie: Oktober 2001
  • Laatst online: 25-08 23:36
Effe nog iets anders wat van belang is.

Ik run zelf geen webserver. Ik heb een site bij concepts.nl dus ik denk niet dat ik iets aan een apache server heb. Verder accepteert concepts.nl GEEN cgi-scripts.


Check deze link voor mijn site zoals hij er nu uit ziet.

http://home.concepts.nl/~mullerev/Homepage%20Multiplay%20help/

(je ziet amper het verschil tussen mappen en bestandjes)

:?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

staat php in safe mode daar?

Klaar voor een nieuwe uitdaging.


  • me1299
  • Registratie: Maart 2000
  • Laatst online: 18:55

me1299

$ondertitel

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
<?
$dir = opendir(getcwd());
while($bla = readdir($dir))
{
  if(is_dir($bla)) echo "<font color=RED>$bla</font><br>";
  else echo "<font color=BLUE>$bla</font><br>";
}
closedir($dir);
?>

Nu worden alle directory links rood, en alle bestanden blauw.
Wat ook kan:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$dir = opendir(getcwd());
while($bla = readdir($dir))
{
  if(is_dir($bla)) $dirs . "<font color=RED>$bla</font><br>";
  else $files . "<font color=BLUE>$bla</font><br>";
}
closedir($dir);
echo $dirs;
echo $files;
?>

Nu heb je ze ook nog gesorteerd.

  • J.Hollemans
  • Registratie: September 2001
  • Laatst online: 03-10-2025
Dat werkt echt perfect !

Ik zocht al zoiets en in 1x gevonden hier op Tweakers...

Maar nu dit:
Ik wil dit ook van subdirectories doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
 $dirname=getcwd();
 $dir = opendir($dirname);
 while($file = readdir($dir))
 {
  if(is_dir($file))
  {
   if ($file != '.' &amp;&amp; $file != '..')
   {
    echo "<font color=RED>$file</font><br>";
    $dir2 = opendir("$dirname/$file");
    while ($file2 = readdir($dir2))
    {
     if(is_dir($file2))
      echo "<font color=BLUE>$file2</font><br>";
    }
    closedir($dir2);
   }
  }
 }
 closedir($dir);
?>

maar nu krijg ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
dir1
.
..
dir2
.
..
dir3
.
..
dir4
.
..

terwijl er wel subdirectories zijn in de mappen dir1, dir2 en dir4...

Wat o wat doe ik fout ?

Far from being some stuffy science, writing regular expressions is closer to an art.


  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Ik heb ooit 's een directorylisting scriptje gemaakt, dat geïmplementeerd moest worden in een script waarmee je een CD (met legale downloads, Linux enzow) on-demand kan laten branden. Het script laat o.a. filetypes en evt. directories zien. Het is nog helemaal niet af, maar je kan je script erop baseren :)
Overigens is het ding niet echt netjes geprogrammeerd, functies.php was uit de tijd dat ik me nog niet echt met arrays bezig hield. En je moet posix-functies op je server hebben.

Hier kan je het downloaden.

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

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
43
44
45
46
47
48
49
50
51
52
<?
$level = -1;
// eerste deel van de string afkappen zodat we de maps relatief tot vanaf deze file
$start =  strlen(getcwd());

function newdir($file)
{
    global $level;

    $tmphandle = opendir($file);
    chdir($file);
    $level++;

    while (false !== ($file = readdir($tmphandle)))
        file_or_dir($file);

    $level--;
    chdir("..");
    closedir($tmphandle);
}

function file_or_dir($file)
{
    global $start;

    if ($file != "." &amp;&amp; $file != "..")
    {

        $dir = getcwd();
        $dir = substr("$dir", $start);

        if (is_dir($file))
        {
            echo "Dir: <b>$dir/$file</b><br>\n";
            newdir($file);
        }
        else
            echo "File: $dir/<i>$file</i><br>\n";
    }
}

/*function printSpaces()
{
    global $level;

    for ($i = 0; $i < $level; $i++)
        echo "----";

}*/

newdir(".");
?>

had ik ooit nodig, kan je aanpassen hoe je wil :)

k'zal em ook ff toevoegen aan de codebase

If it ain't broken it doesn't have enough features


  • J.Hollemans
  • Registratie: September 2001
  • Laatst online: 03-10-2025
Die code is voor bestanden in slechts 1 directory,
wat ik wil is een tree op de pagina "toveren".

Dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dir1
 Subdir1
 Subdir2
 Subdir3
 Subdir4
 Subdir5
Dir2
 Subdir1
 Subdir2
Dir3
Dir4
 Subdir1
 Subdir2
 Subdir3

Far from being some stuffy science, writing regular expressions is closer to an art.

Pagina: 1