About deleting a directory after doing a readdir/closedir on it... I'm not sure if this is the solution, but you could try to chdir("/"); before the rmdir to make absolutely sure you aren't standing in the directory (i.e trying to pull out the rug from under yourself).
closedir
(PHP 4, PHP 5)
closedir — Dizin tanıtıcısını kapatır
Açıklama
void closedir
([ resource
$dizin_tanıtıcısı
] )
dizin_tanıtıcısı ile belirtilen dizin akımını
kapatır. Akımın evvelce opendir() tarafından açılmış
olması gerekir.
Değiştirgeler
Örnekler
Örnek 1 - closedir() örneği
<?php
$dizin = "/etc/apache2/";
// Dizin aç ve içeriğin oku
if (is_dir($dizin)) {
if ($dit = opendir($dizin)) {
while (($dosya = readdir($dit)) !== false) {
echo "dosya adı: $dosya - dosya türü: " .
((filetype($dizin . $dosya) === "dir") ? "dizin" : "dosya") . "\n";
}
closedir($dit);
}
}
?>
foo at bar dot com ¶
12 years ago
lester.k at virgin.com ¶
5 years ago
The manual says that one should only call closedir with a parameter which is an open directory handle.
The manual usually lists warnings and errors generated by violating a "should" or "shouldn't", but doesn't for this case.
In fact, one gets the runtime error
Warning: closedir(): supplied argument is not a valid Directory resource in whatever.php on line nn
irrespective of whether it's an already-closed directory handle or whether it's total junk.
[Different error messages would have spared me a little debugging. Sigh. It would be nice if the manual said.]
