[php] is_file en dir problemen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 07:51

HenkS

Da_king alias HenkS

Topicstarter
hallo,

ik werk in een unix omgeving met php4.2.3 en heb het volgende probleem:

als ik ls -l doe zie ik dit:

drwxr-xr-x 3 dns named 512 Apr 18 14:19 ao-srv
-rw-r--r-- 1 dns named 625 Apr 18 14:31 ao-srv.com.dns
drwxr-xr-x 3 dns named 512 Apr 9 09:11 origin-srv
-rw-r--r-- 1 dns named 653 Apr 9 09:11 origin-srv.com.dns

dus 2 files en 2 dirs

nu wil ik met php kijken of iets een dir of een file is omdat ik een uitklap menu wil maken van de dns-boom-structuur

nu heb ik het ff zo gedaan:

PHP:
1
2
3
4
5
6
7
8
9
10
11
$opendir = "/var/named/com";
if ($dir = @opendir($opendir)) {
 while (($file = readdir($dir)) !== false) {
        clearstatcache();
        if (file_exists($file))echo "yes $file<br>";
        if (is_file(getcwd() ."/". $file))echo "file: $file<br>";
        if (file_exists(getcwd() ."/". $file))echo "file: $file<br>";
        if (is_dir($file))echo "dir: $file<br>";
    }
 closedir($dir);
}


ik heb dus op php.net gelezen dat er wel vaker problemen zijn met is_file en dat je daarvoor de clearstatcache() moet gebruiken of de andere methode file_exists met getcwd() erbij

maar nu is van dit alles dit de output:

yes .
file: .
dir: .
.
yes ..
file: ..
dir: ..
..


m.a.w:

hij ziet alleen de '.' en de '..' als files en of dirs en de rest doet ie geen echo van???

wat doe ik in vredesnaam fout, want ik heb verder echt geen idee hoe ik t anders kan zien........

Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 19-09 13:43
Dus je vraagt de namen op van alle bestanden in "/var/named/com" en gaat dan vervolgens met file_exists() bepalen of er ook een bestand met die naam in de actuele directory bestaat?

Hint: file_exists($opendir."/".$file)

Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 07:51

HenkS

Da_king alias HenkS

Topicstarter
Sjaaky schreef op 22 april 2003 @ 14:32:
Dus je vraagt de namen op van alle bestanden in "/var/named/com" en gaat dan vervolgens met file_exists() bepalen of er ook een bestand met die naam in de actuele directory bestaat?

Hint: file_exists($opendir."/".$file)
ja snap niet wat er mis mee is hoor
ik open alle 'bestanden' en wil weten of het een dir is of een file

als ik jouw regel zo erbij zet (wel in de loop):
PHP:
1
if (file_exists($opendir."/".$file))echo "yes: $file<br>";


krijg ik ook geen output te zien, behalve bij de '.' en de '..'

gebruik ik het nu fout?

Acties:
  • 0 Henk 'm!

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 12-09 09:30
heel vreemd, ik gebruik dezelfde manier en die werkt dus wel!

misschien heb je geen rechten om die bestanden te lezen ?

Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 16:54
Ik weet niet onder welke user jij die ls -l doet, maar ik neem aan dat de webserver en dus PHP wel onder andere permissies zal draaien. Wellicht zit daar het probleem?

Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 07:51

HenkS

Da_king alias HenkS

Topicstarter
mensen thanks

daar zit ook het probleem...

had het kunnen weten, maar ja na pasen schijnt het licht niet meer zo fel in mijn bolletje :P
Pagina: 1