什么是读取文件夹子目录和这些子目录中的文件的最佳方法?
问题描述:
我有一个包含子目录为图像的每一张专辑像什么是读取文件夹子目录和这些子目录中的文件的最佳方法?
- 图片
- 图片/ Album1
- 形象PHP文件 我创建了一个链接一个图像文件夹/ Album2
为每张专辑使用GLOB专辑的缩略图来读取图片下的所有文件夹
$dir=glob('images/*');
$dir_listing=array();
foreach($dir as $list)
{
if(is_dir($list))
$dir_listing[]= (basename($list));
}
$thumbs=glob('images/thumbnails/*');
$count=0;
foreach($thumbs as $th)
{
echo" $dir_listing <br/>";
echo"<a href='$dir_listing[$count]' ><img src='$th' /> </a>";
$count++;
}
我在每个页面加载使用Glob来获取目录和图像的列表。
- 我想知道是否有更好的方法来做到这一点。
- 我也想得到所有文件和文件夹的基础上那里最后修改时间降序{最新文件和文件夹第一}。
正在使用Glob正确还是应该将子目录和文件保存在文本文件中并从中读取?
答
我不能肯定地告诉你,如果有更好的方法做到这一点,但你的代码应该肯定工作。
仅当目录中的文件数量较少(< 10,000)时,使用glob()才是正确的方法,因为如果yoy有很多文件,则可以获得“允许的XYZ字节内存大小用尽......“错误。在这种情况下,最好使用opendir();
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
// do something with the file
// note that '.' and '..' is returned even
}
closedir($handle);
最后,使用上水珠标志GLOB_NOSORT(),所以最终的结果是一样的,以防出现目录可以用来给您根据最后修改日期结果中列出。
希望这会有所帮助。