Mappen en bestanden uitlezen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

08/09/2004 12:41:00
Quote Anchor link
Ik gebruik volgende code om mappen te lezen:
$openmap = opendir($map);
while($item = readdir($openmap))
{
if(is_dir($item))
{
$mappen[] = $item;}
Het probleem is dat PHP geen onderscheid maakt tussen een map en een file, wat hij normaal wel zou moeten doen. PHP denkt dat alles een file is, en geen enkele map zou er tussen zitten. Hij toont wel de "mappen" maar dan als file. Heb al verschillende scripts bekeken en allemaal zien ze er gelijkaardig uit.
Iemand een oplossing?
 
PHP hulp

PHP hulp

15/01/2025 20:02:02
 
B a s
Beheerder

B a s

08/09/2004 12:49:00
Quote Anchor link
je moet kijken of er een extentie achter staat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
if (strstr($file, ".")) // kijken of er een punt in staat
   echo "file";
else
   echo "map";
?>


alleen zoals je weet is dit niet 100% omdat er ook bestanden zijn zonder extentie..
 
SerpenT

SerpenT

08/09/2004 14:29:00
Quote Anchor link
en mappen met punten erin:P,
maar kun je niet zon check doen met filesize().

zoiets als dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$file
= "uploads";
$size = filesize($file);

if ($size != 0)
{

echo "is een bestand, met een grote van " . $size;
}
else{
echo "is een map";
}


?>

dit kan werken omdat een map altijd de waarde "0 terug geeft bij filesize, dus kun je bestanden onderscheiden van mappen, zelfs bestanden zonder extensie hebben een size.

greetz thijs
 
SerpenT

SerpenT

08/09/2004 14:34:00
Quote Anchor link
of het kan ook zo

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$file
= "uploads/smiley";
$type = filetype($file);

if ($type == "file")
{

echo "is een bestand";
}
else{
echo "is een map";
}


?>


met de functie filetype(), deze geeft of file of dir terug. en dat weet je het zeker

<!-- edit !-->
maar het kan ook nog is zo,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$file
= "uploads/smiley";

if (is_file($file))
{

echo "is een bestand";
}
else{
echo "is een map";
}


?>

dit spreekt natuurlijk voor zichzelf, hij checked of het een file is en returned TRUE of FALSE.

Conclusie je hebt nu 3 waterdichte systemen om te checken of iets een map of bestand is.

greetz thijs
Gewijzigd op 08/09/2004 14:38:00 door SerpenT
 

08/09/2004 15:04:00
Quote Anchor link
Bedankt voor de verschillende oplossingen :p). Alles ligt voor de hand, ge moet er natuurlijk opkomen é...
Greetz
 



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.