Juist niet. Hij doet een toekenning en vergelijking in 1. Die regel klopt.
$handle wordt false indien het openen van de directory mislukt is. Het wordt de verwijzing naar die directory indien het gelukt is.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| $dir= "c:/www/grass/users/tr/download/".$d;
if ($handle = opendir($dir)) {
while (($file = readfile($handle)) != false) {
if ($file != "." && $file != "..") {
$f = substr($file, 0, 21);
echo " <a href='grass.homeip.net/users/tr/download/".$d."/".$file."'>".$f."</a>
<br>";
}
}
closedir($handle);
} |
Enkele opmerkingen:
$file --> je gebruikt readdir. Ik heb er readfile van gemaakt, je mag zelf de syntax en de werking controleren.
Ik weet niet zo uit mijn hoofd of het correct is. Ik ga even mijn sources in duiken.
(zie onderaan de post).
Ik heb je echo aangepast. Het gebruiken van variabelen binnen enkele quotes (' dus) werkt niet.
Je gebruikt twee keer dezelfde variabele voor een ander doel. Ik zou persoonlijk twee variabelen gebruiken (hint $handle)
Ik heb je $dir samenstelling aangepast. Een andere mogelijkheid is deze
PHP:
1
| $dir= "c:/www/grass/users/tr/download/$d"; |
Binnen dubbele quotes (") kan je wel variabele gebruiken.
Bij je opendir heb ik ("$dir) omgezet naar ($dir) dit is iets sneller.
Daarnaast zouden hier en daar betere variabelennamen gebruikt kunnen worden.
edit: Ik gebruik onderstaande code om alle bestanden in een directory te bepalen. Ik wil directory's, "." en ".." overslaan.
$strDirectory is de volledige locatie (dus bv c:\www\data\test)
$strBestand is het bestand (dus bv test.php)
$strPath wordt dan c:\www\data\test\test.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| // directory openen. @ zorgt ervoor dat er geen error komt
// indien directory niet bestaat, hij geeft dan wel faulse terug.
if ($directoryHandler = @opendir($strDirectory)) {
// alle bestanden langsgaan
while (($strBestand = readdir($directoryHandler)) !== false) {
// volledige path is nodig om te kunnen controleren
//of het een dir of bestand is
$strPath = "$strDirectory/$strBestand";
// alleen bestanden meenemen
if (!is_dir($strPath)) {
// doe wat
}
}
closedir($directoryHandler);
} |
[
Voor 109% gewijzigd door
Verwijderd op 04-05-2004 11:58
. Reden: De betere richting op gestuurd. Fout hersteld. ]