我正在尝试创建一个扫描文件夹以查找子文件夹的函数,然后返回一个包含这些文件夹名称的数字数组.
这是我用于测试的代码.一旦我得到它打印出文件夹名称而不仅仅是"." 对于当前和以上文件夹的".."都会很好,我可以完成这个功能.
<?php
function super_l_getthemes($dir="themes")
{
if ($handle = opendir($dir)) {
echo "Handle: {$handle}\n";
echo "Files:\n";
while (false !== ($file = readdir($handle))) {
echo "{$file}<br>";
}
closedir($handle);
}
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,并打印出文件夹的所有内容:文件,子文件夹和"." 和"......"
但如果我更换:
while (false !== ($file = readdir($handle))) {
echo "{$file}<br>";
}
Run Code Online (Sandbox Code Playgroud)
有:
while (false !== ($file = readdir($handle))) {
if(file_exists($file) && is_dir($file)){echo "{$file}";}
}
Run Code Online (Sandbox Code Playgroud)
该功能仅打印"." 和"..",而不是我想要打印的两个文件夹名称.
任何帮助表示赞赏.
您必须提供绝对路径file_exists,否则它将在当前执行路径中查找它.
while (false !== ($file = readdir($handle))) {
$file_path = $dir . DIRECTORY_SEPARATOR . $file;
if (file_exists($file_path) && is_dir($file_path)) {
echo "{$file}";
}
}
Run Code Online (Sandbox Code Playgroud)