ホームページ  >  記事  >  php教程  >  php is_file() と is_dir() を使用してディレクトリを横断する場合の使用上の注意

php is_file() と is_dir() を使用してディレクトリを横断する場合の使用上の注意

WBOY
WBOYオリジナル
2016-06-13 12:18:061196ブラウズ

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」のみがファイルであり、その他はディレクトリになっていることがわかります。
はディレクトリです。
はディレクトリです。
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 ";
}else{
echo "
}
}
closedir($ d);


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。