我有一个简单的PHP脚本,其中包含以下代码片段:
$files = scandir($dir);
print_r($files);
注意到在我的阵列中我有:
[0] => .
[1] => ..
[2] => assets.php
[3] => loader.php
这是我的服务器上的错误还是预期的行为,它们是什么?如果是后者,有没有办法将他们排除在扫描之外?因为我只想得到我从目录中制作的脚本文件,而不想得到其他文件。有没有办法将他们排除在扫描之外?
不,这不是一个bug。。。。.
是当前目录,..
是父目录
查看PHP文档
用户贡献的笔记显示了一种排除它们的方法:
$directory = '/path/to/my/directory';
$scanned_directory = array_diff(scandir($directory), array('..', '.'));
如果您使用除scandir之外的其他选项,例如SPL的DirectoryIdeator,则可以选择排除它们(例如将其与RegexIterator组合),或者在迭代时测试它们:
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
if (!$fileinfo->isDot()) {
echo $fileinfo->getFilename() . "'n";
}
}