<?php
$dh = dir($album);
echo "相册目录: " . $dh->path . "<br>";
while (false !== ($file = $dh->read())) {
   if($file != "." and $file != ".."){
    echo '<li><a href="'.$album."/".$file.'" target="_blank"><img src="'.$album."/".$file.'" width="160" height="120" border="0" /><br />'.$file.'</a> </li>';
   }
}
$dh->close();
?>代码中的:if($file != "." and $file != "..")这句是什么意思?主要是“.”和".."是什么意思?
还有代码?
<?php
$d = dir("dir_test/test/test2");
echo "Handle: " . $d->handle . "<br>";
echo "Path: " . $d->path . "<br>";
while (false !== ($entry = $d->read())) {
   echo $entry."<br>";
}
$d->close();
?> 输出:
Handle: Resource id #3
Path: dir_test/test/test2
.
..
test.php其中Resource id #3和
.
..
是怎样得到的?谢谢各位高手帮忙指点一下,非常感谢!!!~~~~~

解决方案 »

  1.   

    “.”指当前目录,".."是指上一级目录
    $d->handle是resource类型的,你直接echo 当然会输出resource的id
      

  2.   

    .和..都代表目录,.表示当前所在目录, ..表示上一级目录
    if($file != "." and $file != "..")就表示跳过无用的目录
    下面一个问题跟上面是一样的,文件目录下都有这两个特殊目录的存在,遍历的时候可以看到
      

  3.   

    我知道"."是当前所在目录,“..”是上一级目录。
    我的意思是根据$d = dir("dir_test/test/test2"); 这个为什么会得出
    .
    ..
      

  4.   

    已经说明了
    .和..是每个目录都存在的特殊目录,用来表示当前和上级目录,你本来就是要取得目录内的东西,就没什么用
    另外,如果你不忽略这两个目录,也不做其他处理,会在递归调用的时候造成死循环,比如你想遍历/some/path,那你会不断访问/some/path/./././././././././等等越来越多,这样还是当前目录