3

scandir() を使用してファイルを再帰的に検索します。ただし、ファイル パスがフォルダーではなくファイルを指している場合は、警告が表示されます。ファイルまたはフォルダーへのパスを確認するにはどうすればよいですか?

enter code here
<?php

$path = "C:\\test_folder\\folder2\\folder4";
$sub_folder = scandir($path);
$num = count($sub_folder);
for ($i = 2; $i < $num; $i++)
{
...//if $sub_folder[$i] is a file but a folder, there will be a warning.
       How can I check $sub_folder[$i] before use it?




}
?>

ありがとう!

4

4 に答える 4

8

is_dir() と is_file() を調べてください

<?php

$path = "C:\\test_folder\\folder2\\folder4";
$sub_folder = scandir($path);
$num = count($sub_folder);
for ($i = 2; $i < $num; $i++)
{
    if(is_file($path.'\\'.$sub_folder[$i])){
        echo 'Warning';
    }

}
?>
于 2013-09-19T19:54:24.010 に答える
4

is_dir()は、パスがディレクトリかどうかを教えてくれるはずです。

于 2013-09-19T19:53:50.693 に答える
0

DirectoryIterator (クラス)を使用することもできます

$path = 'your path';
$dir = new DirectoryIterator(realpath($path));
foreach ($dir as $fileInfo) {
    if($fileInfo->isFile()) {
        // it's a file
    }
}

また、is_fileis_dirを確認することもできます。

于 2013-09-19T20:02:18.477 に答える