is_file()和is_dir()用于遍历目录时用法注意事项_PHP

WBOY
Release: 2016-06-01 12:20:41
Original
878 people have browsed it

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

1、目录inc有以下内容:

子目录 0
子目录 a
footer.html
header.html
login_function.inc.php
mysqli_connect.php
style.css

2、现在PHP要遍历inc目录,并只显示文件,不显示目录0和a,代码如下:

$dir = $_SERVER['DOCUMENT_ROOT'];
$dir = "$dir/inc/";

$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.inc.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);
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template