0

我有一个图像文件夹,其中包含每个图像专辑的子目录,例如

  • 图片
  • 图片/相册1
  • 图片/专辑2

在 PHP 文件中,我使用 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 是否正确,或者我们应该将子目录和文件保存在文本文件中并从中读取?

4

1 回答 1

0

我不能肯定地告诉你是否有更好的方法来做到这一点,但你的代码肯定可以工作。

仅当目录中的文件数量相对较少(<10,000)时,使用 glob() 才是正确的方法,因为如果您有很多文件,那么您可能会得到“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() 上使用标志 GLOB_NOSORT 以便最终结果就像它在目录中列出的那样,以防可用于根据上次修改日期为您提供结果。

希望这可以帮助。

于 2012-04-06T04:32:51.267 回答