如何使用PHP按字母顺序列出文件夹中的所有文件和文件夹?
我对文件a.txt
,b.txt
,c
和d.txt
使用了以下内容,其中c
是一个文件夹。问题是c
最后显示而不是b.txt
之后,因为它是一个文件夹。
我还希望能够检查每个文件是文件还是文件夹。
<?php
$dir = opendir ("folders");
while (false !== ($file = readdir($dir))) {
echo "$file <br />";
}
?>
答案 0 :(得分:1)
glob()
的力量可以帮到你。只是做:
$dir = glob("folders/*");
答案 1 :(得分:0)
首先将名称读入数组而不是立即打印。然后对数组进行排序,然后输出。
<?php
$dir = opendir ("folders");
while (false !== ($file = readdir($dir))) {
$names[] = $file;
}
sort($names, SORT_STRING);
foreach ($names as $name) {
echo "$name <br />";
}
?>
答案 2 :(得分:0)
首先将名称读入数组而不是立即打印。然后对数组进行排序,然后输出。
<?php
$files = array();
$dir = opendir ("folders");
while (false !== ($file = readdir($dir))) {
$files[] = $file;
}
sort($files);
foreach ($files as $f)
echo "$f <br />";
?>
答案 3 :(得分:0)
我建议使用以下代码(不需要opendir等)
$entries = glob("*");
sort($entries); // This is optional depending on your os, on linux it works the way you want w/o the sort
var_dump($entries);
/* Output
array(4) {
[0]=>
string(5) "a.txt"
[1]=>
string(5) "b.txt"
[2]=>
string(1) "c"
[3]=>
string(5) "d.txt"
}
*/
对于你问题的第二部分:你是php“is_file”和“is_dir”函数
答案 4 :(得分:0)
$files = scandir('folders');
sort($files);
foreach ($files as $file) {
echo $file.'<br />';
}