Wie kan me vertellen wat onderstaand stukje script betekend. en als het om rechten gaat hoe ik die wijzigd.

if($dirname[strlen($dirname)-1] != "/") $dirname.="/";
static $result_array = array();
$mode = fileperms($dirname);
if(($mode & 0x4000) == 0x4000 && ($mode & 0x00004) == 0x00004) {
chdir($dirname);
$handle = @opendir($dirname);
}
if(isset($handle)) {
while ($file = readdir($handle)) {
if($file=='.'||$file=='..') continue;
if(is_dir($dirname.$file)) i_get_files($dirname.$file.'/');
else $result_array[] = $dirname.$file;
}
closedir($handle);
}
return $result_array;
}
Zo te zien maakt het een array met alle bestanden in een lading mappen, recursief. Maar alleen waneer de map leesbaar is (filemode)

Maar dat kan een stuk makkelijker met [php]is_readable[/php]. Ik weet niet wat je wou veranderen, maar ik zou beginnen met
<?
$mode = fileperms($dirname);
if(($mode & 0x4000) == 0x4000 && ($mode & 0x00004) == 0x00004) {
?>
te vervangen door
<?
if(is_readable($dirname)) {
?>
Jelmer schreef op 29.08.2006 09:31
Zo te zien maakt het een array met alle bestanden in een lading mappen, recursief. Maar alleen waneer de map leesbaar is (filemode)

Maar dat kan een stuk makkelijker met [php]is_readable[/php]. Ik weet niet wat je wou veranderen, maar ik zou beginnen met
<?
$mode = fileperms($dirname);
if(($mode & 0x4000) == 0x4000 && ($mode & 0x00004) == 0x00004) {
?>
te vervangen door
<?
if(is_readable($dirname)) {
?>



Het probleem is dat bij het indexeren van een zoek script (sitesearch) het script blijft hangen op het stukje wat hierboven beschreven (Warning: chdir(): Permission denied (errno 13) ) is de melding. Na het veranderen in de regel die jij voorstelt krijg ik nog steeds de melding. Alle mappen hebben 644 of hoger qua rechten.
Sterker nog: mappen moeten ook een permission Executable hebben als je er in wilt kijken.
All mappen hebben 755 en de bestanden erin 644

Arend schreef op 29.08.2006 12:13
Sterker nog: mappen moeten ook een permission Executable hebben als je er in wilt kijken.

Reageren