这种使用 PHP scandir() 函数的方式有什么问题?[复制]

What is wrong in this way of using PHP scandir() function? [duplicate]

提问人:Mohammad 提问时间:3/13/2022 最后编辑:Mohammad 更新时间:9/11/2022 访问量:191

问:

我一直在编写一个简单的PHP脚本,用于读取目录中的所有文件并显示它们,但它显示未知文件,我在images文件夹中的文件只有两个图像,但返回给我4个结果是“”。(点),第二个是“..”(双点)。 这些结果从何而来?scandir()

这是我的PHP函数:

    $carpet_images=scandir('./images');

    print_r($carpet_images);

这是结果:

Array
(
[0] => .
[1] => ..
[2] => 1562475195-1796949251.jpg
[3] => 5f931b6fdbbdc8bfbd164f4bb08334ec_zzz-1.jpg
)
php 扫描目录

评论

0赞 brombeer 3/13/2022
.是当前目录,是父目录..
0赞 RiggsFolly 3/13/2022
你有没有看过输出 fron a 或dirls -a
0赞 RiggsFolly 3/13/2022
在几乎每个 scandir 示例中,都有代码可以忽略 和 目录...
0赞 Mohammad 3/13/2022
不,在这种情况下,我没有查看 dir 或 ls -a 输出,因为我在共享主机中使用此脚本并且我无法访问命令行
0赞 RiggsFolly 3/13/2022
unix.stackexchange.com/questions/63081/what-are-and-directories

答:

1赞 Lajos Arpad 3/13/2022 #1

.是当前目录,是父目录。您可以像这样过滤掉它们:..

$directories = scandir("./images");

$carpet_images = array_filter($directories, function($var) {
    return !in_array($var, ['.', '..']);
});