php is dir is files,遍历目录时is_file()和is_dir()函数的注意问题

要求:遍历一个目录并区分显示其中的文件和子目录文件夹。

1、目录files有以下内容:

子目录 0

子目录 a

footer.html

header.html

login_function.files.php

mysqli_connect.php

style.css

2、遍历files目录,并只显示文件,不显示目录0和a:

复制代码 代码示例:

$dir = $_SERVER['DOCUMENT_ROOT'];

$dir = "$dir/files/";

$d = opendir($dir);

while(false !==($f=readdir($d)))

{

if(is_file($f)){

echo "

$f

";

}else{

echo "

是目录$f

";

}

}

closedir($d);

结果却只显示了“footer.html”是文件,其它都变成目录了:

是目录.

是目录..

是目录a

footer.html

是目录header.html

是目录login_function.files.php

是目录mysqli_connect.php

是目录style.css

原因在于不能在is_file和is_dir中直接使用“$f”,这样会被PHP当作是根目录下的该文件,而在根目录下有footer.html这个文件,所以会正确显示这个文件。

其它则不行。

将代码修改为如下的内容即可。

复制代码 代码示例:

while(false !== ($f=readdir($d)))

{

if(is_file("$dir/$f")){

echo "

$f

";

}else{

echo "

是目录$f

";

}

}

closedir($d);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值