我想检查目录中的文件,我正在使用 scandir()
和 is_file()
进行检查。在这个简单的代码中,is_file()
为我返回了 false
。但在目录中我有 3 个文件。
$files = scandir('uploads/slideShow');
$sfiles = array();
foreach($files as $file) {
if( is_file($file) ) {
$sfiles[] = $file;
// echo $file;
}
}
使用 $file
变量的 scandir()
的结果:
Array
(
[0] => .
[1] => ..
[2] => 6696_930.jpg
[3] => 9_8912141076_L600.jpg
[4] => untitled file.txt
)
$sfiles
的结果:
Array
(
)
最佳答案
问题是 scandir
只返回文件名,因此您的代码正在 current 目录中寻找 untitled file.txt
等,而不是扫描的。
这与 glob("uploads/slideShow/*")
形成对比,它将返回您正在查看的文件的完整路径。如果将此 glob
与 is_file
一起使用,它应该可以正常工作。
关于PHP is_file() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24117361/