我创建了一个脚本,列出当前目录中的目录
<?php
$dir = getcwd();
if($handle = opendir($dir)){
while($file = readdir($handle)){
if(is_dir($file)){
echo "<a href=\"$file\">$file</a><br />";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
但问题是,我看到这个"......"和"." 在目录列表的正上方,当有人点击它时,它们被重定向到目录的一个级别..有人可以告诉我如何删除那些".."和"." ?
如果使用opendir/readdir/closedir函数,则必须手动检查:
<?php
if ($handle = opendir($dir)) {
while ($file = readdir($handle)) {
if ($file === '.' || $file === '..' || !is_dir($file)) continue;
echo "<a href=\"$file\">$file</a><br />";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
如果要使用DirectoryIterator,则有isDot()方法:
<?php
$iterator = new DirectoryIterator($dir);
foreach ($iterator as $fileInfo) {
if ($fileInfo->isDot() || !$fileInfo->isDir()) continue;
$file = $fileinfo->getFilename();
echo "<a href=\"$file\">$file</a><br />";
}
?>
Run Code Online (Sandbox Code Playgroud)
注意:我认为continue可以通过减少缩进级别来简化这种循环.
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |