Probleme mit is_dir()
Manuel B.
- php
Hi,
unter PHP5.0.5 (CGU-FCGI) hab ich das problem, das bei
if(!is_dir($pfad))
einzelne Verzeichnisse trotzdem angezeigt werden. Ist bekannt, ob es dahingehend einen Bug gibt? Kennt jemand nen Workaround? Wenn ich mit is_file() arbeite, hab ich ds gleiche Problem. Hier ein Codeschnippsel:
$dirs = array('', 'css', 'images', 'help', 'help/css', 'javascript');
foreach($dirs as $dir){
if(is_dir($this->fullpath . "/admin/" . $dir)){
$this->d = dir($this->fullpath . "/admin/" . $dir);
$full_dir = $GLOBALS['config']->get('path') . '/admin/' . $xml['art'] . 's/' . $xml['art'] . "_" . $xml->name . '/' . $dir;
$this->make_dir($full_dir);
while(false !== ($entry = $this->d->read())){
if(!is_dir($entry) && $entry != "." && $entry != ".."){
$this->remove_file[] = $full_dir . $entry;
}
}
}
}
Erzeugt wird dann folgendes Array:
Array
(
[0] => /blocks/block_admin/block_admin.php
[1] => /blocks/block_admin/css/block_admin.css
[2] => /blocks/block_mainmenu/block_mainmenu.php
[3] => /blocks/block_mainmenu/images/folder_blank.gif
[4] => /blocks/block_mainmenu/images/folder_open.gif
[5] => /blocks/block_mainmenu/images/folder_close.gif
[6] => /blocks/block_mainmenu/javascript/block_mainmenu.js
[7] => /admin/modules/module_config/module_config.admin.php
[8] => /admin/modules/module_config/help
[9] => /admin/modules/module_config/images
[10] => /admin/modules/module_config/imagesTextdatei
[11] => /modules/module_config/css/module_config.css
[12] => /modules/module_config/help/module_config.help.html
[13] => /modules/module_config/help/css/module_config.help.css
)
Wobei [8] und [9] Verzeichnisse sind und nicht angezeigt werden sollten. (bei [10] fehlt nur der / in der Ausgabe)
Ich arbeite unter Sarge mit der CGI-Version von PHP5 unter Apache2
Hi,
while(false !== ($entry = $this->d->read())){
if(!is_dir($entry) && $entry != "." && $entry != ".."){
$this->remove_file[] = $full_dir . $entry;
}
}
mmhh. Müsste das hier nicht heißen: if(!is_dir($full_dir . $entry) ...) ??
Schöne Grüße
Axel
Hi Alex,
mmhh. Müsste das hier nicht heißen: if(!is_dir($full_dir . $entry) ...) ??
Haut mir mal bitte jemand von hinten auf den Kopf. Es liegt daran, das ich (den falschen) relativen Pfad angegeben hab. Jetzt mit dem absoluten klappts. Danke, das du mich auf die Spur gebracht hast. Das kommt davon, wenn ich in einer Klasse mit 12 verschiedenen Pfaden jongliere und die Doku erst hinterher schreibe :(