加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – scandir返回[0] =>.和[1] => ..在数组中

发布时间:2020-12-13 21:54:58 所属栏目:PHP教程 来源:网络整理
导读:我有一个简单的 PHP脚本与这段代码: $files = scandir($dir); print_r($files); 在我的阵列中注意到我: [0] = . [1] = .. [2] = assets.php [3] = loader.php 这是我的服务器上的错误还是预期的行为,它们是什么?如果是后者有什么方法可以将它们从扫描中排
我有一个简单的 PHP脚本与这段代码:

$files  = scandir($dir);    
print_r($files);

在我的阵列中注意到我:

[0] => .
    [1] => ..
    [2] => assets.php
    [3] => loader.php

这是我的服务器上的错误还是预期的行为,它们是什么?如果是后者有什么方法可以将它们从扫描中排除?因为我希望只获取我从目录中创建的脚本文件而没有别的.有没有办法将它们从扫描中排除?

解决方法

不,这不是一个错误….是当前目录,…父目录

见PHP Docs

用户提供的注释显示了一种排除它们的方法:

$directory = '/path/to/my/directory';
$scanned_directory = array_diff(scandir($directory),array('..','.'));

如果您使用scandir之外的其他选项,例如SPL的DirectoryIterator,可以选择将它们排除(例如将它与RegexIterator结合使用),或者在迭代时测试它们:

$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->getFilename() . "n";
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读