1

我正在尝试对 opendir() 列表进行排序,以便它可以按照我命名的顺序显示信息。

目录中的每个文件都称为 1_something.php、2_something.php、3_something.php 等。这些文件是模板化的 html 的一小部分,我将其更改为我需要的任何内容。

我正在使用下面的代码来提取并显示这些文件:

$dir = "./portfolio"; 
if($handle = opendir($dir)) { 
    while($file = readdir($handle)) { 
        clearstatcache(); 
        if(is_file($dir.'/'.$file)) {
            include("portfolio/".$file);
        }
    } 
closedir($handle); 
} 

我一直在尝试创建一个名称数组并对它们进行排序,尽管我想我不知道数组发生在哪里、排序发生在哪里以及信息的实际显示发生在哪里。

先感谢您。

4

2 回答 2

1

嗯,有什么阻止你使用的scandir吗?

http://sg.php.net/manual/en/function.scandir.php

$files = scandir($dir); // returns array of files, sorted alphabetically
foreach($files as $file) {
   // your code
}
于 2012-06-08T03:42:15.410 回答
0

这要归功于@SiGanteng

我只需要添加另一行以确保它只查看真实文件:下面的代码

$dir = "./portfolio"; 
$files = scandir($dir); // returns array of files, sorted alphabetically

foreach($files as $file) {
    if(is_file($dir.'/'.$file)) {
        include("portfolio/".$file);
    }
}

这是按升序返回结果的最简单方法。
再次感谢斯干腾

于 2012-06-08T17:30:56.853 回答