PHP scandir 奇怪的行为

发布于 2024-08-10 00:15:16 字数 333 浏览 6 评论 0原文

好的,所以我想做的是扫描“上一个”文件夹。

$scanned = scandir("..");
foreach($scanned as $file){

if(is_file($file)){
    print $file."<br />";       
   }
}

即使在我的“..”目录中,我有 20 多个文件,但我只得到三行,

index.jpg
index.php
template.dtd

我注意到,如果我不使用 is_file if 子句,它会返回所有文件名;但我真的需要 if 子句。

ok, so what i'm trying to do is to scan the "previous" folder.

$scanned = scandir("..");
foreach($scanned as $file){

if(is_file($file)){
    print $file."<br />";       
   }
}

even though in my ".." directory i have 20+ files i get just three rows

index.jpg
index.php
template.dtd

i noticed that if i don;t use that is_file if clause it returns all file names; but i really need that if clause.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巴黎夜雨 2024-08-17 00:15:16

我将花一些时间猜测这三个文件同时存在于当前目录和父目录中。 scandir() 仅返回文件名,当您的意思是 is_file("../$file") 时,您正在调用 is_file($file) >。

I'm going to take a while guess that those three files exist in both the current directory and the parent directory. scandir() only returns filenames, and you're calling is_file($file) when you mean is_file("../$file").

我家小可爱 2024-08-17 00:15:16

您的函数正在测试当前目录中的文件名,而不是前一个目录中的文件名。要获得所需的结果,请尝试: is_file('../' . $file) 。

Your function is testing for those filenames in the current directory and not in the previous directory. To get the desired result, try: is_file('../' . $file) instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文