Home >Backend Development >PHP Tutorial >PHP file traversal implementation code_PHP tutorial

PHP file traversal implementation code_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:29:40924browse

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);

    www.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...
    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn