Php is_dir和is_file不使用来自根目录的路径
我正在使用scandir()检查一个目录文件,它可以正确使用根目录的路径,如/dir1/dir2/。。。。(dir1不在我的.php文件后面,它是根目录中的一个文件夹) 但当在同一路径上使用is_dir和is_文件时,会输出错误的结果Php is_dir和is_file不使用来自根目录的路径,php,web,filesystems,Php,Web,Filesystems,我正在使用scandir()检查一个目录文件,它可以正确使用根目录的路径,如/dir1/dir2/。。。。(dir1不在我的.php文件后面,它是根目录中的一个文件夹) 但当在同一路径上使用is_dir和is_文件时,会输出错误的结果 如何修复此问题?请尝试此方法 function getDirContents($dir) { $handle = opendir($dir); if (!$handle) return array(); $contents = array(
如何修复此问题?请尝试此方法
function getDirContents($dir) {
$handle = opendir($dir);
if (!$handle) return array();
$contents = array();
while $entry = readdir($handle)) {
if ($entry=='.' || $entry=='..') continue;
$entry = $dir.DIRECTORY_SEPARATOR.$entry;
if (is_file($entry)) {
$contents[] = $entry;
} else if (is_dir($entry)) {
$contents = array_merge($contents, getDirContents($entry));
}
}
closedir($handle);
return $contents;
}
$directoryPath = 'Path to folder';
$getDirContents = getDirContents($directoryPath);
echo "<pre>";
print_r(getDirContents );
echo "</pre>";
函数getDirContents($dir){
$handle=opendir($dir);
if(!$handle)返回数组();
$contents=array();
而$entry=readdir($handle)){
如果($entry==”。| |$entry==”..)继续;
$entry=$dir.DIRECTORY\u SEPARATOR.$entry;
if(is_文件($entry)){
$contents[]=$entry;
}else如果(is_dir($entry)){
$contents=array_merge($contents,getDirContents($entry));
}
}
closedir($handle);
返回$contents;
}
$directoryPath='Path to folder';
$getDirContents=getDirContents($directoryPath);
回声“;
打印(获取目录);
回声“;
只需看看PHPs自己的对象,它比单个函数更快、更详细
这段代码直接从文档中取出。它获取当前执行文件的当前目录并对其进行迭代。只要当前$fileinfo不是一个点,它就会转储此目录中文件和子目录的文件名。该文件的权限如何?为什么OP应该在不知道其作用的情况下尝试您的答案?一个好的答案应该伴随一些解释,“路径示例”到底是什么意思?
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
var_dump($fileinfo->getFilename());
}
}