在 PHP 中,为啥我的 scandir 调用会返回错误数量的文件?
Posted
技术标签:
【中文标题】在 PHP 中,为啥我的 scandir 调用会返回错误数量的文件?【英文标题】:In PHP, why does my scandir call return the wrong amount of files?在 PHP 中,为什么我的 scandir 调用会返回错误数量的文件? 【发布时间】:2017-11-10 09:54:35 【问题描述】: for($instancesFiles=1;$instancesFiles<count(scandir("Articles/".date('y-m-d').""));$instancesFiles++)
//For each file inside the directory for today's articles, each of which corresponds to an instance of the "article" class...
$dir="Articles/".date("y-m-d")."/".$instancesFiles."";
$artProps=scandir($dir);
//Retrieve an array of its interior files, each of which corresponds to a property of the aforementioned instance
在今天日期的文件下,我有一个其他目录,但是当询问 scandir 返回的数组的计数时,我总是得到“3”。(我已经用 echo 调用检查了这个,其中“count( scandir($dir))" 总是返回 3。$dir 中有子文件,但有 4 个子文件。这可能与它有关吗?如何解决此错误?感谢您提供的任何帮助;我非常感谢从更有经验的程序员那里获得建议。:)
【问题讨论】:
【参考方案1】:使用 scandir,您始终可以获取当前目录 (.) 和父目录 (..)。您可以检查是否对 scandir 的结果进行了 print_r。所以你只需要从scandir的计数中减去2。
根据文档:
$dir = '/tmp';
$files1 = scandir($dir);
print_r($files1);
Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)
$dir 中有子文件,但有 4 个子文件。可以 有什么关系吗?
=> 不,scandir 不是递归的。
【讨论】:
以上是关于在 PHP 中,为啥我的 scandir 调用会返回错误数量的文件?的主要内容,如果未能解决你的问题,请参考以下文章