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 " <h2>$f </h2>";
}else{
echo " <h2>是目錄$f </h2>";
}
}
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 "<h2>$f</h2>";
}else{
echo "<h2>是目錄$f</h2>";
}
}
closedir($d);