आप RecursiveDirectoryIterator
और RecursiveIteratorIterator
उपयोग कर सकते हैं। लेकिन मुझे लगता है कि यह उन लोगों के लिए उपयोगी होगा जो खोज के बाद यहां उतरे थे।
मैं supajason से कोड एक सा बनाया संशोधित क्योंकि प्रदान की कोड एक सुसंगत परिणाम वापस नहीं किया था: मुख्य रूप से इस्तेमाल किया नामकरण की वजह से ।
मैंने कुछ कार्यक्षमता भी जोड़ा।
आशा है कि यह उपयोगी है!
<?php
define('ROOT', str_replace('\\', '/', getcwd()).'/');
///########-------------------------------------------------------------
///########-------------------------------------------------------------
///######## FUNCTION TO LIST ALL FILES AND FOLDERS WITHIN A CERTAIN PATH
///########-------------------------------------------------------------
///########-------------------------------------------------------------
function listFolderFiles(
$dir, /// **** TARGET DIRECTORY TO SCAN
$ReturnFlat = true, /// **** DEFAULT FLAT ARRAY TO BE RETURNED
$iteration = 0 /// **** INTERNAL PARAM TO COUNT THE FUNCTIONS OWN ITERATIONS
){
///########==================================================
///######## PREPARE ALL VARIABLES
///########==================================================
$dir = rtrim($dir, '/'); /// **** REMOVE TRAILING SLASH (* just for being pretty *)
$FilesFolders = scandir($dir); /// **** SCAN FOR ALL FILES AND FOLDERS
$NestedFolders = array(); /// **** THE NESTED FOLDERS BUILD ARRAY
static $TotalFiles = array(); /// **** THE TOTAL FILES ARRAY
///######## MAKE SURE THAT THE STATIC FILES ARE WILL BE CLEARED AFTER THE FIRST ITERATION
if($iteration === 0){
///######### RESET AS EMPTY ARRAY
$TotalFiles = array();
}
///########==================================================
///########==================================================
///######## RUN THROUGH ALL FILES AND FOLDERS
///########==================================================
foreach($FilesFolders as $File){
if(
/// **** IF NOT ONE DIR UP
($File != '.')
&&
/// **** IF NOT TWO DIRS UP
($File != '..')
){
///######### IF IT CONCERNS A FILE
if(is_dir($dir.'/'.$File) === true){
$iteration++; /// **** RAISE THE ITERATION
$NestedFolders[] = listFolderFiles($dir.'/'.$File, false, $iteration); /// **** EXECUTE THE FUNCTION ITSELF
}
///######### IF IT CONCERNS A FILE
else{
$TotalFiles[] = $dir.'/'.$File; /// **** ADD THE FILE TO THE TOTAL FILES ARRAY
$NestedFolders[] = $File; /// **** ADD THE FILE TO THE NESTED FOLDERS ARRAY
}
}
}
///########==================================================
///####### IF A FLAT LIST SHOULD BE RETURNED
if($ReturnFlat === true){
///########==================================================
///######## RETURN ALL FILES AND FOLDERS IN A FLAT ARRAY
///########==================================================
return($TotalFiles);
///########==================================================
}
///######## IF A NESTED LIST SHOULD BE RETURNED
else{
///########==================================================
///######## RETURN THE FILES AND FOLDERS IN A NESTED ARRAY
///########==================================================
return($NestedFolders);
///########==================================================
}
}
$files = listFolderFiles(ROOT, true); /// **** FLAT ARRAY
///$files = listFolderFiles(ROOT, false); /// **** NESTED ARRAY
echo print_r($files, true);
?>
* "प्रदान किया गया कोड लगातार परिणाम नहीं लौटाता" * - इसका मतलब क्या है? आपके कार्यान्वयन के व्यवहार के बारे में क्या अलग है? –