猿问

PHP脚本循环遍历目录中的所有文件?

我正在寻找一个循环遍历目录中所有文件的PHP脚本,以便可以使用文件名进行操作,例如格式,打印或将其添加到链接中。我希望能够按名称,类型或创建/添加/修改的日期对文件进行排序。(想想目录“ index”。)我还希望能够将排除项添加到文件列表中,例如脚本本身或其他“系统”文件。(类似于...“目录”。)

由于我希望能够修改脚本,因此我对查看PHP文档和学习如何自己编写更感兴趣。就是说,如果有任何现有的脚本,教程和诸如此类的东西,请告诉我。


心有法竹
浏览 499回答 3
3回答

喵喔喔

您可以使用DirectoryIterator。来自PHP手册的示例:<?php$dir = new DirectoryIterator(dirname(__FILE__));foreach ($dir as $fileinfo) {&nbsp; &nbsp; if (!$fileinfo->isDot()) {&nbsp; &nbsp; &nbsp; &nbsp; var_dump($fileinfo->getFilename());&nbsp; &nbsp; }}?>

慕哥6287543

如果您无权访问DirectoryIterator类,请尝试以下操作:<?php$path = "/path/to/files";if ($handle = opendir($path)) {&nbsp; &nbsp; while (false !== ($file = readdir($handle))) {&nbsp; &nbsp; &nbsp; &nbsp; if ('.' === $file) continue;&nbsp; &nbsp; &nbsp; &nbsp; if ('..' === $file) continue;&nbsp; &nbsp; &nbsp; &nbsp; // do something with the file&nbsp; &nbsp; }&nbsp; &nbsp; closedir($handle);}?>

猛跑小猪

使用scandir()功能:<?php&nbsp; &nbsp; $directory = '/path/to/files';&nbsp; &nbsp; if (!is_dir($directory)) {&nbsp; &nbsp; &nbsp; &nbsp; exit('Invalid diretory path');&nbsp; &nbsp; }&nbsp; &nbsp; $files = array();&nbsp; &nbsp; foreach (scandir($directory) as $file) {&nbsp; &nbsp; &nbsp; &nbsp; if ($file !== '.' && $file !== '..') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $files[] = $file;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; var_dump($files);?>
随时随地看视频慕课网APP
我要回答