Toon posts:

[PHP] sub dir uitlezen + filteren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, daar ben ik weer met mijn vervelende 'newbie' vragen. Vorige keer kreeg ik al te horen dat ik 'basic' was en daarom werd mijn topic gesloten, allemaal leuk en aardig maar ik daar schiet ik niet zoveel mee op. Nou kan ik natuurlijk uren PHP gaan studeren, maar ik dacht, mocht iemand het toevallig zo 1 2 3 weten, dan scheelt mij dat een hoop tijd en moeite. Wellicht een egoistische gedacht, maar laat ik het toch nog maar eens proberen.

Hier een stukje code dat de root en de subdirs binnen een directory uitleest:
PHP:
1
<?function getDirList ($dirName) {$d = dir($dirName);while($entry = $d->read()) {if ($entry != "." &amp;&amp; $entry != ".." &amp;&amp; stristr($entry, ".doc") != "")  {if (is_dir($dirName."/".$entry)) {echo 'Directory <a href="'.$dirName.'/'.$entry.'/">'.$entry."/</a><br>";getDirList($dirName."/".$entry);} else {echo '<li><a href="'.$dirName.'/'.$entry.'">'.$entry."</a><br>";}}}echo "</ul>";$d->close();}$direct = ('documenten');if (OpenDir) { if($direct !=""){ getDirList($direct);}}?>

Zoals je misschien gezien hebt, probeer ik de .doc bestanden eruit te filteren, nou lukt dat ook wel, maar dan alleen voor de root dir en niet de sub dirs. Weet iemand hoe ik het zo kan krijgen dat hij ook de sub dirs filtert?

Mijn dank is groot voor jullie hulp!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

ok, complete edit.

je wilt dus alleen de .docs laten zien.

't probleem lag in deze regel:
PHP:
1
<?if ($entry != '.' &amp;&amp; $entry != '..' &amp;&amp; stristr($entry, '.doc') != '')  {?>

stel je entry is een directory. dan:
code:
1
2
3
4
5
6
7
8
9
$entry = 'subdirretje';

$entry != '.'  --> TRUE
AND
$entry != '..' --> TRUE
AND
stristr($entry, '.doc') != '' --> FALSE

TRUE + TRUE + FALSE = FALSE

hij gaat dan dus idd niet meer verder.

een evt. oplossing:
PHP:
1
<?if ($entry != '.' &amp;&amp; $entry != '..' &amp;&amp; (stristr($entry, '.doc') == '.doc' || is_dir($dirName.'/'.$entry)))  {// of bijv:if ($entry != '.' &amp;&amp; $entry != '..' &amp;&amp; (eregi('.doc$',$entry) || is_dir($dirName.'/'.$entry)))  {?>

*insert signature here


Verwijderd

Topicstarter
Geweldig! Duizend maal dank!

Sjonge hartstikke bedankt zeg, dit lost een hoop problemen voor mij op!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

zet voortaan een aantal debug echo-tjes op een aantal plaatsen dan kom je er zelf makkelijk achter.

*insert signature here


Verwijderd

Topicstarter
Oww dat zal ik doen :)

Bedankt :)