Подтвердить что ты не робот

PHP: получить список всех имен файлов, содержащихся в моей директории изображений

Я пытаюсь найти способ перечислить все файлы, содержащиеся в каталоге. Я не очень хорошо разбираюсь в php, чтобы решить эту проблему самостоятельно, поэтому, надеюсь, кто-то здесь может помочь мне.

Мне нужен простой php script, который будет загружать все имена файлов, содержащиеся в моем каталоге изображений, в массив. Любая помощь будет принята с благодарностью, спасибо!

4b9b3361

Ответ 1

Попробуйте glob

Что-то вроде:

 foreach(glob('./images/*.*') as $filename){
     echo $filename;
 }

Ответ 2

scandir() - Список файлов и каталогов внутри указанного пути

$images = scandir("images", 1);
print_r($images);

Выдает:

Array
(
    [0] => apples.jpg
    [1] => oranges.png
    [2] => grapes.gif
    [3] => ..
    [4] => .
)

Ответ 3

Либо scandir(), как предложено в другом месте, или

  • glob() - Найти пути, соответствующие шаблону

Пример

$images = glob("./images/*.gif");
print_r($images);

/* outputs 
Array (
   [0] => 'an-image.gif' 
   [1] => 'another-image.gif'
)
*/

Или, чтобы перемещаться по файлам в каталоге напрямую, а не получать массив, используйте

Пример

foreach (new DirectoryIterator('.') as $item) {
    echo $item, PHP_EOL;
} 

Чтобы перейти в подкаталоги, используйте RecursiveDirectoryIterator:

$items = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('.'),
    RecursiveIteratorIterator::SELF_FIRST
);

foreach($items as $item) {
    echo $item, PHP_EOL;
}

Чтобы указать только имена файлов (каталоги w\out), удалите RecursiveIteratorIterator::SELF_FIRST

Ответ 5

Это даст вам все файлы в ссылках.

<?php
$path = $_SERVER['DOCUMENT_ROOT']."/your_folder/"; 

$files = scandir($path);
$count=1;
foreach ($files as $filename)
{
    if($filename=="." || $filename==".." || $filename=="download.php" || $filename=="index.php")
    {
        //this will not display specified files
    }
    else
    {
        echo "<label >".$count.".&nbsp;</label>";
        echo "<a href="download.php/?filename=".$filename."">".$filename."</a>
";
        $count++;
    }
}
?>

Ответ 6

Возможно, эта функция может быть полезна в будущем. Вы можете манипулировать функцией, если вам нужно эхо-вещи или хотите сделать другие вещи.

$wavs = array();
$wavs = getAllFiles('folder_name',$wavs,'wav');

$allTypesOfFiles = array();
$wavs = getAllFiles('folder_name',$allTypesOfFiles);

//explanation of arguments from the getAllFiles() function
//$dir -> folder/directory you want to get all the files from.
//$allFiles -> to store all the files in and return in the and.
//$extension -> use this argument if you want to find specific files only, else keept empty to find all type of files.

function getAllFiles($dir,$allFiles,$extension = null){
    $files = scandir($dir);
    foreach($files as $file){           
        if(is_dir($dir.'/'.$file)) {
            $allFiles = getAllFiles($dir.'/'.$file,$allFiles,$extension);
        }else{
            if(empty($extension) || $extension == pathinfo($dir.'/'.$file)['extension']){
                array_push($allFiles,$dir.'/'.$file);
            }
        }
    }
    return $allFiles;
}