Hello,
Hab da immer noch n Problem.
Wie bekomme ich ein array aus einer funktion?
return array($array_dir,$array_file);
Das stimmt.
Du brauchst Dann nur das Funktionsergebnis entgegen zu nehmen:
$_dirlist = scan_dir ($original_dir);
foreach ($_dirlist as $enty)
{
echo ($array_dir);
echo '<br />';
}
In Deinem Code habe ich nochmal herumgespielt:
<?php
function scan_dir ($dir)
{
$dir = rtrim($dir, '/').'/';
if (!$handle = opendir($dir)) return false;
$_result['link']['name'] = array();
$_result['dir']['name'] = array();
$_result['file']['name'] = array();
$_result['file']['size'] = array();
$_index = array();
$_index['file'] = 0;
while (false !== ($res = readdir($handle)))
{
if (is_dir($dir.$res) && is_link($dir.$res))
{
$_result['link']['name'][] = $dir.$res;
}
elseif (is_dir($dir.$res) && $res != '.' && $res != '..')
{
$_result['dir']['name'][] = $dir.$res;
}
elseif (is_file($dir.$res))
{
$_index['file']++;
$_result['file']['name'][$_index['file']] = $dir.$res;
$_result['file']['size'][$_index['file']] = filesize($_result['file']['name'][$_index['file']]);
}
}
closedir($handle);
natsort($_result['link']['name']);
natsort($_result['dir']['name']);
natsort($_result['file']['name']);
return array($_result);
}
#===================================================================================
PHP main
#===================================================================================
$_dirlist = scan_dir ('../../.');
echo "<pre>\r\n";
echo htmlspecialchars(print_r($_dirlist,1));
echo "</pre>\r\n";
?>
Die Trennung von (DIR || LINK) und 'nur' DIR ist mMn wichtig, wenn Du später mit den Ergebnissen weiterarbeiten willst, um das Ganze vielleicht rekursiv abzuwickeln.
Die Links darfst Du dann nicht ungeprüft rekursiv auflösen, sonst könnte sich Dein Programm aufhängen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg