PHP:获取images图像目录中包含的所有文件名列表

时间:2010-01-13 20:13:54

标签: php

我一直试图找出一种列出目录中包含的所有文件的方法。我不太适合使用php自己解决它,所以希望有人可以帮助我。

我需要一个简单的PHP脚本,它将我的images目录中包含的所有文件名加载到一个数组中。非常感谢任何帮助,谢谢!

6 个答案:

答案 0 :(得分:95)

尝试glob

类似的东西:

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

答案 1 :(得分:17)

scandir() - 列出指定路径中的文件和目录

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

产地:

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

答案 2 :(得分:10)

其他地方建议的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

答案 3 :(得分:3)

您还可以使用Standard PHP LibraryDirectoryIterator课程,特别是getFilename方法:

 $dir = new DirectoryIterator("/path/to/images");
 foreach ($dir as $fileinfo) {
      echo $fileinfo->getFilename() . "\n";
 }

答案 4 :(得分:1)

这将为您提供链接中的所有文件。

<?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++;
    }
}
?>

答案 5 :(得分:-1)

也许这个功能将来会有用。如果你需要回应事物或想要做其他事情,你可以操纵这个功能。

$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;
}