ten einde raad

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mic

mic

02/02/2006 00:17:00
Quote Anchor link
Hallo,

zit al uren mn hoofd te breken over een simpel probleem :

probeer een programmaatje te maken dat een bepaalde folder inleest en van elke 'entry' in deze folder weergeeft of dit op zijn beurt een 'file' of een 'folder' is.
Mijn directorystructuur is de volgende :

een beginfolder met daarin enkele gewone bestanden en enkele nieuwe folders. Als ik het programma loslaat op deze directory dan herkent hij alles zoals het moet. Als ik dan hetzelfde programma laat lopen in een van de subfolders in mijn beginfolder (die op hun beurt ook files en folders bevatten), dan werkt het niet meer. Dan geeft hij zowel files als folders aan als zijnde een file?? Maw hij ziet plots alles als zijnde een file, zelf als zitten er terug nieuwe folders in de subdirectory...

heeft er iemand een idee hoe dit kan komen?

hier de code :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

$root
='hierin zit de url naar de te onderzoeken directory';


function
checkdir($direct)
{


  if (is_dir($direct)==true) return true;
  else return false;
}


$dh = @opendir("$root");

while (($content = readdir($dh)) !== false)
{

   if (checkdir($content)==true)    
   {

      if ($content!=="." && $content!=="..") echo  "folder found : $content <br \>";
   }

   elseif (checkdir($content)==false) echo "file found : $content <br \>";
}  



@
closedir($dh);
?>



Ik begrijp dit echt niet... heb het al op 1000 verschillende manieren geprobeerd, met altijd hetzelfde probleem....
 
PHP hulp

PHP hulp

16/11/2024 13:39:28
 
EdwinG

EdwinG

02/02/2006 00:43:00
Quote Anchor link
if (is_dir($direct)==true)
Kan korter:
if ( is_dir($direct) )

Bovendien, een functie van maar 1 regel, niet echt nuttig, zet die regel dan gewoon in de while-lust.

if (checkdir($content)==true)
Zelfde verhaal:
if (checkdir($content) )
 
Mic

mic

02/02/2006 00:50:00
Quote Anchor link
edit : gemerkt dat dit op de verkeerde plaats staat, maar ik kan het niet verzetten...

Ondertussen heb ik een toevellige ontdekking gedaan die mss licht kan brengen op de zaak :)

als ik dit programma opsla op dezelfde plaats als waar $root naar verwijst, dan werkt het ok, als ik dit programma bv zet in een folder lager, maar de $root blijft wijzen naar dezelfde folder als daarvoor, dan ziet hij alles als file.
 
Mic

mic

02/02/2006 00:51:00
Quote Anchor link
ja ik weet het maat ik had dit gewoon effe gedaan om zeker te zijn dat ik nergens een logische fout gemaakt had. Nu roep ik altijd dezelfde functie op dus kan ik zeker zijn dat het geen logicafout is..
 
EdwinG

EdwinG

02/02/2006 01:07:00
Quote Anchor link
Je roept de functie maar 1x op. Bovendien doet de functie precies het zelfde als is_dir();
Kortom, een overbodige stap, die juist de kans op logicafouten vergroot.
 
Mic

mic

02/02/2006 04:22:00
Quote Anchor link
ok na ZES uur zoeken op dit stomme geval heb ik de fout gevonden :

is_dir($root.$content) ipv
is_dir($content)

tja...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.