从目录中读取文件名
问题描述:
我想从没有任何数据库的目录读取html文件名。我有一个代码,它的工作正常,但它给出了两个空白名称,而我在目录中只有4个文件。从目录中读取文件名
<?php
if (is_dir('dir')) {
if ($dh = opendir('dir')) {
while (($file = readdir($dh)) !== false) {
echo "filename:".$file."<br />";
}
}
}?>
我有4个HTML文件和输出应该是:
filename:aaaaaa kjnnk_13.html
filename:aaaaaa kjnnk_2.html
filename:aaaaaa kjnnk_6.html
filename:aaaaaa kjnnk_9.html
但我发现2个额外的文件名:
filename:.
filename:..
filename:aaaaaa kjnnk_13.html
filename:aaaaaa kjnnk_2.html
filename:aaaaaa kjnnk_6.html
filename:aaaaaa kjnnk_9.html
请帮
答
。是目前目录 ..是为一个目录上
当使用readdir你会得到那2额外的。
我更喜欢使用glob()。该功能允许您筛选的HTML文件仅过
<?php
$files = glob('dir/*html');
foreach($files as $file) {
echo "filename:".$file."<br />";
}
?>
+0
但是,如果它将是PHP文件,那么将是$ files = glob('dir/* php') – user3526766
+0
正确,并且如果您只需要所有文件:dir/* –
答
另外,您可以使用FilesystemIterator这将默认跳过点文件:
$it = new FilesystemIterator('dir');
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "<br/>";
}
更多的答案在计算器:
'if($ file!='。'&& $ file!='..')' –
hank you for reply ...但是在哪里添加条件? – user3526766
也许在'echo'之前? –