如何使用PHP opendir()构建文件列表并隐藏扩展?

时间:2011-11-14 16:38:18

标签: php sorting opendir

由于我只得到PHP现象的一小部分,我很高兴我通过搜索网络创建了以下脚本。如您所见,这显示了我正在构建的网站上“archive”文件夹中的文件。这是我学校的报纸。旧文件将上传到此文件夹。问题是目前订单非常混乱。我知道PHP可以使用sort()对事物进行排序,但在这种情况下我不确定如何做到这一点。任何人都可以解释如何修复它吗?

另一件事是隐藏扩展。我还没找到,有可能吗?

如果你能帮助我至少第一件事,那将是一个很好的帮助:)

<?php
    if ($handle = opendir(archive)) {
        $ignore_files = array('.', '..', '.htaccess', '.htpasswd', 'index.php');
        while (false !== ($file = readdir($handle)))
        {
            if (!in_array($file, $ignore_files))
            {
                $thelist .= '<a href="/archive/'.$file.'">'.$file.'</a>'.'<br>';
            }
        }
        closedir($handle);
    }
?>
<p><?=$thelist?></p>

1 个答案:

答案 0 :(得分:1)

如果你想从目录中获取文件列表(然后对该列表进行排序),同时剥离扩展名,你可以这样做:

<?php
// $archive variabe assumed to point to '/archive' folder
$ignore_files = array('.', '..', '.htaccess', '.htpasswd', 'index.php');

// into array $files1 will be every file inside $archive:
$files1 = scandir($archive);
sort($files1);

foreach ($files1 as $file) {
    if (!in_array($file, $ignore_files)) {
        $fileParts = pathinfo($file);
        $thelist .= '<a href="/archive/'.$file.'">'.$fileParts['filename'].'</a>'.'<br>';
    }
}
?>
<p><?=$thelist?></p>