[PHP] is_file() werkt niet mee

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wilde vandaag voor de eerste keer eens gaan experimenteren met files in PHP, alleen ik kom niet echt ver :(
(Ik zit in een windows omgeving, met apache)

ik heb namelijk een directory datatype
waarin het bestand file.class.php en de test file test.txt staan.

Als ik file_exists() doe met test.txt krijg ik een TRUE,
maar als ik is_file, is_dir, is_link, is_readable, is_writeable doe met test.txt komt er altijd een FALSE uit.

Ik heb het bestand al wel kunnen openen en uitleven via fopen.
Dus ik snap er even helemaal niets meer van.
Wat doe ik fout, want het bestand bestaat wel maar is_file() is het daar blijkbaar niet mee eens...

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Dit probleem heb ik vandaag ook ontdekt. Voorlopig geloof ik nog maar even dat het bestanden zijn. Ik ben toch de enige die in de map komt. Windows ME.

[ Voor 8% gewijzigd door djluc op 26-08-2003 16:51 ]


Acties:
  • 0 Henk 'm!

  • BraveWorld
  • Registratie: September 2001
  • Niet online
Heb ik ook met PHP onder Windows XP. Is_dir() werkte echter wel goed. Heb niet meer verder gezocht want ik kon er om heen, maar ben wel benieuwd naar het hoe en waarom.

Dit is geen signature...


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, ik sta dus niet alleen.
Ik heb nog een idee alleen het zou raar zijn, zou het kunnen dat je moet aangeven voor is_file() in welke map je bestand staat,
Ik zou het wel raar vinden want file_exists en fopen werken wel zonder...

Acties:
  • 0 Henk 'm!

  • BraveWorld
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op 26 August 2003 @ 16:58:zou het kunnen dat je moet aangeven voor is_file() in welke map je bestand staat
Zou ik ook raar vinden. Ik gebruikte is_dir() en is_file() in dezelfde constructie met dezelfde parameter en alleen is_dir() werkte correct.

Ik heb trouwens PHP 4.2.3.

Op http://nl2.php.net/manual/nl/function.is-file.php staan bij de user contributed notes nog wel enige beperkingen vermeld. Die waren echter niet op mijn situatie van toepassing.

Een slappe work-around is !is_dir() gebruiken ipv is_file().

Verder misschien nog de errors.txt van PHP checken.

En als ik me verveel duik ik er ook weer effe in. Bijvoorbeeld door het even onder Linux te checken door het te uploaden naar mijn webhoster.

[ Voor 9% gewijzigd door BraveWorld op 26-08-2003 17:24 ]

Dit is geen signature...


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja maar dan heb je er eigenlijk weinig aan (behalve als je wilt kijken of het geen directory is).
Want je wilt zeker weten of het een bestand (file) is.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
quoteje van iemand op php.net;
if you're running apache as a service on a win32 machine, an you try to determinate if a file on an other pc in your network exists - ex.: is_file('//servername/share/dir1/dir2/file.txt') - you may return false when you're running the service as LocalSystem. To avoid this, you have to start the Apache-Service as a 'registered' domain user.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Nope, ik heb het ook lokaal dus dat is het probleem niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
1. Ik draai php op mijn eigen pc, van waar ik ook alles start en naar toe link. Dus dit zou niet daar aan moeten liggen.

2. Maar ik draai wel hem als een service, dus hoe zet ik hem dan op "you have to start the Apache-Service as a 'registered' domain user."?

Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Verwijderd schreef op 26 August 2003 @ 20:03:
1. Ik draai php op mijn eigen pc, van waar ik ook alles start en naar toe link. Dus dit zou niet daar aan moeten liggen.

2. Maar ik draai wel hem als een service, dus hoe zet ik hem dan op "you have to start the Apache-Service as a 'registered' domain user."?
start > config scherm > administrative tools > services

Zoek Apache op (dubbel klik voor eigenschappen)
Onder het tab ``Logon''

Het kan wezen dat je ff een extra useraccount aan moet maken.
Pagina: 1