I use scandir() to search files recursively. But if the file path directs to a file not a folder, there will be a warning. How can I check the path whether it directs a file
Have a look into is_dir() and 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';
}
}
?>
You can check whether if the variable has file extension or not.
This "if" will gets files only :
if (pathinfo($file, PATHINFO_EXTENSION))
and this "if" will gets directories only:
if (!pathinfo($file, PATHINFO_EXTENSION))
You can also use DirectoryIterator (class)
$path = 'your path';
$dir = new DirectoryIterator(realpath($path));
foreach ($dir as $fileInfo) {
if($fileInfo->isFile()) {
// it's a file
}
}
Also, you may check is_file and is_dir.
is_dir() should tell you if a path is a directory or not.