Home >php教程 >php手册 >PHP 遍历文件实现代码

PHP 遍历文件实现代码

WBOY
WBOYOriginal
2016-06-06 20:36:55928browse

小笔记, PHP 遍历所有文件, 包括子目录中的文件. 和压缩文件的类结合起来的话, 就可以打包整个目录了.

代码如下:
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遍历文件及文件夹
    加入给定文件夹 C:\\Windows\\AppPatch
    1.首先获取这个文件夹下面的所有东西,也就是文件,文件夹,放一个数组里面
    $fileArr = array(
    'files' => array(), //文件放一个数组
    'dirs' => array(), //文件夹放一个数组
    )
    2.如果存在子文件夹,遍历子文件夹,获取文件夹和文件,同样放进那个数组,如此循环,一个不漏
    代码如下:
    $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遍历一个文件夹下的所有目录及文件
    在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹。
      这个题目有好多种解决方法。但大致思路都一样。采用递归。
    代码如下:
    $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."\r\n";
    get_dir_scandir($path2);
    }else
    {
    echo $single."\r\n";
    }
    }
    }
    }
    get_dir_scandir($path);
    echo '

    ';
    function get_dir_glob(){
    $tree = array();
    foreach(glob('./curl/*') as $single){
    echo $single."\r\n";
    }
    }
    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);
    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