Alleen mappen laten zien
ik kan uit een map wel alle bestanden en mappen weergeven en het lukt me ook wel om bepaalde extensie alleen weer te geven uit de map alleen lukt het me niet om alleen de submappen weer te geven.
Ik wil dit namelijk gebruiken om een upload systeem te maken.
Nu moet ik iedere keer in mijn formulier (pull-down) een nieuw optie toevoeegen als er een map bij komt of verwijderen wanneer er een verwijdert wordt.
Is er een mogelijkheid om alleen de mappen binnen een map weer te geven zonder alle extensies die er bestaan uit te sluiten.?
Ik krijg een blanco pagina te zien.
Ik heb me er van verzekerd dat er minimaal een map in staat:D
Ideeen?
http://php.net/manual/en/class.recursivedirectoryiterator.php
Bekijk deze class van php zelf eens.
Aan de hand van de voorbeelden en google kom je er wel uit, het werkt wel lekker :)
Succes!
Toevoeging op 03/02/2011 00:01:03:
in combinatie met:
RecursiveIteratorIterator
RegexIterator
:)
Bekijk deze class van php zelf eens.
Aan de hand van de voorbeelden en google kom je er wel uit, het werkt wel lekker :)
Succes!
Toevoeging op 03/02/2011 00:01:03:
in combinatie met:
RecursiveIteratorIterator
RegexIterator
:)
Omega Tes op 02/02/2011 23:33:16:
Ik krijg een blanco pagina te zien.
Dan zit er ergens een fout in jouw script.
Laat eens zien.
glob() Hiermee kun je gemakkelijk alle folders uit een bepaalde map ophalen. Je krijgt deze dan in een array geleverd.
kijk eens naar - SanThe - op 03/02/2011 00:55:08:
Dan zit er ergens een fout in jouw script.
Laat eens zien.
Omega Tes op 02/02/2011 23:33:16:
Ik krijg een blanco pagina te zien.
Dan zit er ergens een fout in jouw script.
Laat eens zien.
Ik heb het script letterlijk van jouw wiki gekopieerd. dus dat is mijn script.
Omega Tes op 03/02/2011 15:32:33:
Ik heb het script letterlijk van jouw wiki gekopieerd. dus dat is mijn script.
- SanThe - op 03/02/2011 00:55:08:
Dan zit er ergens een fout in jouw script.
Laat eens zien.
Omega Tes op 02/02/2011 23:33:16:
Ik krijg een blanco pagina te zien.
Dan zit er ergens een fout in jouw script.
Laat eens zien.
Ik heb het script letterlijk van jouw wiki gekopieerd. dus dat is mijn script.
Voor de zekerheid nog even getest. Mijn script werkt.
Misschien een foutje bij het copiëren?
Gewijzigd op 03/02/2011 15:50:44 door - SanThe -
Quote:
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
Niet even error meldingen aangezet??
Dat doe je als eerste bij een blanco pagina toch?
John D op 03/02/2011 15:58:17:
Niet even error meldingen aangezet??
Dat doe je als eerste bij een blanco pagina toch?
Quote:
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
ik krijg een blanco pagina te zien.
Niet even error meldingen aangezet??
Dat doe je als eerste bij een blanco pagina toch?
Error meldingen staan aan, wat ik al aangeef ik krijg alleen een blanco pagina te zien.
Nou, laat toch je code dan maar eens zien.
http://phpwiki.santhe.nl/index.php/Show_alle_mappen_die_in_een_map_en_in_alle_submappen_van_die_map_staan
Code (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
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Deze functie geeft een array() terug met alle namen
// van alle mappen in de map waarmee je de functie
// aanroept. Ook worden alle mappen uit de eventueel
// aanwezige submappen meegenomen. Als er bij de aanroep
// geen parameter is opgegeven zal de functie werken
// vanuit de huidige map. LET OP: Roep de functie NOOIT
// aan met een ongecontroleerde $var uit gebruikersinput.
// Bijvoorbeeld $_POST of $_GET. Het is namelijk mogelijk
// om de gehele server te bekijken met deze functie.
function showdirs($map = "./", $return = array())
{
if(@$dir = opendir($map))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != "..")
{
if(is_dir($map . $file))
{
$return[] = $map . $file;
// Bij een gevonden submap roept de functie zichzelf
// aan om ook die mapinhoud mee te nemen.
$return = showdirs($map . $file . "/", $return);
}
}
}
}
@closedir($dir);
return $return;
}
// Functie aanroepen met de mapnaam en aan het eind een / (slash).
$dirinhoud = showdirs('dirname/');
foreach($dirinhoud as $dir)
{
echo $dir . '<br />';
}
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// Deze functie geeft een array() terug met alle namen
// van alle mappen in de map waarmee je de functie
// aanroept. Ook worden alle mappen uit de eventueel
// aanwezige submappen meegenomen. Als er bij de aanroep
// geen parameter is opgegeven zal de functie werken
// vanuit de huidige map. LET OP: Roep de functie NOOIT
// aan met een ongecontroleerde $var uit gebruikersinput.
// Bijvoorbeeld $_POST of $_GET. Het is namelijk mogelijk
// om de gehele server te bekijken met deze functie.
function showdirs($map = "./", $return = array())
{
if(@$dir = opendir($map))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != "..")
{
if(is_dir($map . $file))
{
$return[] = $map . $file;
// Bij een gevonden submap roept de functie zichzelf
// aan om ook die mapinhoud mee te nemen.
$return = showdirs($map . $file . "/", $return);
}
}
}
}
@closedir($dir);
return $return;
}
// Functie aanroepen met de mapnaam en aan het eind een / (slash).
$dirinhoud = showdirs('dirname/');
foreach($dirinhoud as $dir)
{
echo $dir . '<br />';
}
?>
Gewijzigd op 03/02/2011 21:10:44 door Omega Tes
Hmmm,toch maar even voor de zekerheid... heb je "dirname/" (in de code hierboven op regel 37) aangepast naar de juiste mapnaam?
..
Kan het aan mijn php versie (5.3.3) liggen?
Of dat het draait op windows?
Gewijzigd op 03/02/2011 23:03:29 door Omega Tes
Heb je wel het absolute pad gebruikt? (dus niet alleen maar een mapnaam)
Kan het niet zonder?
Als ik namelijk ./ toevoeg als pad krijg ik het volgende terug.
./ext
./map1
./map2
realpath ofzo.
Thanks everyone so far
Omega Tes op 04/02/2011 00:03:11:
graag gedaan ;)Heb nu het absolute pad toegevoegd en dan werkt het wel.
Ozzie PHP op 04/02/2011 00:18:19:
Omega Tes op 04/02/2011 00:03:11:
graag gedaan ;)Heb nu het absolute pad toegevoegd en dan werkt het wel.
Bedankt Ozzie, maar heb je dan ook de oplossing zoals beschreven in mijn laatste antwoord?
dirname(__FILE__)