PHP получить список файлов в папке (директории) - пример - имена, размер и другая доп. информация
Primary tabs
Прежде всего можно использовать функцию scandir(), на базе которой можно создать различные пользовательские функции:
/**
* Вернёт массив, содержащий имена файлов из указанной директории
* (содержащиеся директории будут проигнорированы)
*
* @param string $dirpath - путь к диретории
* @return array - массив имён файлов
*/
function getSimpleFilesList($dirpath) {
$result = array();
$cdir = scandir($dirpath);
foreach ($cdir as $value) {
// если это "не точки" и не директория
if (!in_array($value,array(".", ".."))
&& !is_dir($dirpath . DIRECTORY_SEPARATOR . $value)) {
$result[] = $value;
}
}
return $result;
}
/**
* Вернёт многомерный массив, содержащий имена файлов из указанной директории
* (содержащиеся директории будут проигнорированы)
* + дополнительные сведения о каждом файле (в частности размер)
*
* @param string $dirpath - путь к диретории
* @return array - массив имён файлов
*/
function getSimpleFilesListWithAddInfo($dirpath) {
$result = array();
$cdir = scandir($dirpath);
$i = 0;
foreach ($cdir as $value) {
// если это "не точки" и не директория
if (!in_array($value,array(".", ".."))
&& !is_dir($dirpath . DIRECTORY_SEPARATOR . $value)) {
$result[$i]['name'] = $value;
$result[$i]['size'] = filesize($dirpath . DIRECTORY_SEPARATOR . $value);
$i++;
}
}
return $result;
}
где getSimpleFilesListWithAddInfo() возвращает данные в виде:
array(3) {
[0]=>
array(2) {
["name"]=>
string(14) "78398_1000.jpg"
["size"]=>
int(247187)
}
[1]=>
array(2) {
["name"]=>
string(8) "Aam.jpg"
["size"]=>
int(1228572)
}
[2]=>
array(2) {
["name"]=>
string(19) "allfons.ru-3018.jpg"
["size"]=>
int(496852)
}
}
- Log in to post comments
- 14527 reads