TheRealKos
Новичок
Доброго времени суток. В общем есть такой вот код, который выводит файлы в папке upload/Группа/Логин. Но если в папке Логин есть еще папки, то он и их выведет (а нужно только файлы).
Знаю, что можно рекурсией (но как правильно сделать так и не понял). Собственно говоря нашел вот такой код с рекурсией, но как адаптировать не знаю.
Ругается на строчки function glob_recursive($dir, $mask){ с ошибкой Fatal error: Cannot redeclare glob_recursive() (previously declared in ). И на foreach(glob($dir.'/*') as $filename){ с ошибкой (Warning: Invalid argument supplied for foreach() in
И как изменить в маске, чтобы искал не только форматы .doc, но и .docx?
PHP:
$dir = "upload/".$array2["group"]."/".$array2["login"]."/";
echo $dir;
if(is_dir($dir))
{
$files = scandir($dir); //сканируем (получаем массив файлов)
array_shift($files); // удаляем из массива '.'
array_shift($files); // удаляем из массива '..'
for($i=0; $i<sizeof($files); $i++)
{
if($array !== false)
{
$s=(array_key_exists($files[$i],$array)==true)?$array[$files[$i]]:'';
}
else
{
$s = '';
}
echo '<a href="'.$dir.$files[$i].'" title="Скачать файл"> '.$files[$i].'<br></a> '.$s.' ';
}
}
PHP:
function glob_recursive($dir, $mask){
foreach(glob($dir.'/*') as $filename){
if(strtolower(substr($filename, strlen($filename)-strlen($mask), strlen($mask)))==strtolower($mask)) echo $filename."<br>";
if(is_dir($filename)) glob_recursive($filename, $mask);
}
}
glob_recursive("upload/".$array2["group"]."/".$array2["login"]."/", ".doc");
И как изменить в маске, чтобы искал не только форматы .doc, но и .docx?