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

lew*_*qic 43 php

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

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

a.y*_*reb 97

试试glob

就像是:

 foreach(glob('./images/*.*') as $filename){
     echo $filename;
 }
Run Code Online (Sandbox Code Playgroud)

  • 哈哈,PHP太棒了:). (10认同)
  • @Nis用`glob('./ images/*.{php,js}',GLOB_BRACE)替换`glob('./ images /*.*')`` (7认同)

Sam*_*son 17

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

$images = scandir("images", 1);
print_r($images);
Run Code Online (Sandbox Code Playgroud)

生产:

Array
(
    [0] => apples.jpg
    [1] => oranges.png
    [2] => grapes.gif
    [3] => ..
    [4] => .
)
Run Code Online (Sandbox Code Playgroud)

  • 简而言之,句点是Linux中的标准目录注释器.单个句点表示当前目录,双句点表示父目录. (4认同)

Gor*_*don 11

要么scandir()在其他地方建议,要么

  • glob() - 查找与模式匹配的路径名

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

/* outputs 
Array (
   [0] => 'an-image.gif' 
   [1] => 'another-image.gif'
)
*/
Run Code Online (Sandbox Code Playgroud)

或者,要直接遍历目录中的文件而不是获取数组,请使用

foreach (new DirectoryIterator('.') as $item) {
    echo $item, PHP_EOL;
} 
Run Code Online (Sandbox Code Playgroud)

要进入子目录,请使用RecursiveDirectoryIterator:

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

foreach($items as $item) {
    echo $item, PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

要仅列出文件名(w\out目录),请删除 RecursiveIteratorIterator::SELF_FIRST