Php 在zf2中获取完整目录
大家好,我做了一个函数Php 在zf2中获取完整目录,php,zend-framework2,Php,Zend Framework2,大家好,我做了一个函数 function getDirContents($dir, &$results = array()){ $files = scandir($dir); foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { $results[] = $path; } else if(is_dir($path) &am
function getDirContents($dir, &$results = array()){
$files = scandir($dir);
foreach($files as $key => $value){
$path = realpath($dir.DIRECTORY_SEPARATOR.$value);
if(!is_dir($path)) {
$results[] = $path;
} else if(is_dir($path) && $value != "." && $value != "..") {
getDirContents($path, $results);
$results[] = $path;
}
}
return $results;
}
我现在就这样打电话给你
$value = $this->getDirContents("/var/www/staging/public/files/rgerger");
通过我的控制器,我可以获得文件夹的全部详细信息,我指的是包含所有内容的目录和子目录。。
scandir处于启用状态,仅提供目标文件夹下的文件夹,该文件夹仅被扫描,但不提供子文件夹到最后的内容。您需要将递归方法调用的结果分配回调用方 我未经检验的例子
function getDirectoryContents($dir)
{
$files = [];
if (is_dir($dir)) {
foreach(scandir($dir) as $key => $fileName) {
$filePath = realpath($dir . DIRECTORY_SEPARATOR . $fileName);
if ($fileName == '.' || $fileName == '..') {
continue;
}
if (is_dir($filePath)) {
$files[] = getDirectoryContents($filePath);
} else {
$files[] = $fileName;
}
}
}
return $files;
}
根据我的评论,您还可以使用SPL,这是PHP内置的OOP解决方案,用于迭代文件系统。我建议您检查SPL或。这些是专门为迭代文件系统目录而设计的内置类。