Copy code The code is as follows:
function Files($path)
{
foreach(scandir($path) as $line)
{
if($line=='.'||$line=='..') continue;
if(is_dir($path.'/'.$line)) Files($path.'/'.$line);
else echo '
'.$path.'/'.$line.'';
}
}
PHP traverses files and folders
Add to the given folder C:\Windows\AppPatch
1. First get everything under this folder , that is, files and folders are placed in an array
$fileArr = array(
'files' => array(), //The files are placed in an array
'dirs' => array( ), //Put an array in the folder
)
2. If there are subfolders, traverse the subfolders, get the folders and files, and put them into the array as well, and so on, without missing any one
Copy code The code is as follows:
$dir = 'F:\game';
function read_dir_all($dir) {
$ret = array('dirs'=>array(), 'files'=>array());
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file != '.' && $file !== '..') {
$cur_path = $dir . DIRECTORY_SEPARATOR . $file;
if(is_dir($cur_path)) {
$ret['dirs'][$cur_path] = read_dir_all($cur_path);
} else {
$ret['files'][] = $cur_path;
}
}
}
closedir($handle);
}
return $ret;
}
$p = read_dir_all($dir);
echo '
'; <br>var_dump($p); <br>echo '
';
?>
php traverses all directories and files in a folder
We often encounter this question during interviews: php traverses all files and subfolders in a folder.
There are many solutions to this problem. But the general idea is the same. Use recursion.
Copy code The code is as follows:
$path = './filepath';
function getfiles($path)
{
if(!is_dir($path)) return;
$handle = opendir($path);
while( false !== ($file = readdir($handle)))
{
if($file != '.' && $file!='..')
{
$path2= $path.'/'.$file;
if (is_dir($path2))
{
echo ' ';
echo $file;
getfiles($path2);
}else
{
echo ' ';
echo $file;
}
}
}
}
print_r( getfiles($path));
echo '
';
function getdir($path)
{
if(!is_dir($path)) return;
$handle = dir($path);
while($file=$handle->read( ))
{
if($file!='.' && $file!='..')
{
$path2 = $path.'/'.$file;
if(is_dir($path2))
{
echo $file."t";
getdir($path2);
}else
{
echo $file.' ';
}
}
}
}
getdir($path);
echo '
';
function get_dir_scandir($path){
$tree = array();
foreach(scandir($path) as $single){
if($single!='.' && $single!='..')
{
$path2 = $path.'/'.$single;
if(is_dir($path2))
{
echo $single."rn";
get_dir_scandir($path2);
}else
{
echo $single."rn";
}
}
}
}
get_dir_scandir($path);
echo '
';
function get_dir_glob(){
$tree = array();
foreach(glob('./curl/*') as $single){
echo $single."rn";
}
}
get_dir_glob();
echo '
';
function myscandir($path)
{
if(!is_dir($path)) return;
foreach(scandir($path) as $file)
{
if($file!='.' && $file!=' ..')
{
$path2= $path.'/'.$file;
if(is_dir($path2))
{
echo $file;
myscandir ($path2);
}else
{
echo $file.' ';
}
}
}
}
myscandir($path);
echo '
';
function myglob($path)
{
$path_pattern = $path.'/*';
foreach(glob($path_pattern) as $file )
{
if(is_dir($file))
{
echo $file;
myscandir($file);
}else
{
echo $ file.' ';
}
}
}
myglob($path);
http://www.bkjia.com/PHPjc/323394.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/323394.htmlTechArticleCopy the code The code is as follows: function Files($path) { foreach(scandir($path) as $line) { if($line=='.'||$line=='..') continue; if(is_dir($path.'/'.$line)) Files($path.'/'.$line); else...