您的位置:

php遍历文件夹下所有的文件夹,php列出文件夹下的所有文件

本文目录一览:

php写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

最近刚写的,可以遍历指定目录下的所有文件、文件夹、特定后缀的文件:

/**

 * 遍历目录

 * @param string $dir 绝对/相对路径

 * @param string $filter 默认*返回所有文件及文件夹,*.php仅返回php文件,如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件

 * @param const $patten 默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册

 * @param string/bool $nocache 防止本次调用的结果缓存上次的结果,如果一个脚本仅调用一次本函数,则不用管,否则得设个值

 * @return array

 */

function globdir($dir, $filter = '*', $patten = GLOB_BRACE, $nocache = null) {

    static $file_arr = array ();

    isset($nocache)  $file_arr = array ();

    if (!is_dir($dir)) return;

    if ($patten == GLOB_ONLYDIR) {

        $code = 'if (is_dir($file)) {$file_arr[] = $file;globdir($file, "*", GLOB_ONLYDIR);}';

    } else {

        $code = 'is_file($file) ? $file_arr[] = $file : globdir($file,"' . $filter . '",' . $patten . ');';

    }

    array_walk(glob("{$dir}/{$filter}", $patten), create_function('$file, $k, $file_arr', $code), $file_arr);

    if ($filter != '*') {

        array_walk(glob("{$dir}/*", GLOB_ONLYDIR), create_function('$dir,$k,$param', 'list($filter, $patten) = explode("|", $param);globdir($dir, $filter, $patten);'), "{$filter}|{$patten}");

    }

    return $file_arr;

}

php怎么遍历指定目录下的文件(可指定文件类

遍历目录下文件,首先获取该目录下的所有文件名。

$folder = './folder/';

foreach (scandir($folder) AS $value) {

    if ($value == '.' OR $value == '..') continue;

    echo '文件名 : ' . $value . "\n";

}

PHP遍历输出文件夹内的所有文件用递归算法?

一般来说,类似这种遍历输出所有文件,大多采用递归算法,这样程序显得比较简洁,其实际执行效率来说,并不见得比其他方法更好。

以下是示例:

function file_list($path)

{

if ($handle = opendir($path))//打开路径成功

{

while (false !== ($file = readdir($handle)))//循环读取目录中的文件名并赋值给$file

{

if ($file != "." $file != "..")//排除当前路径和前一路径

{

if (is_dir($path."/".$file))

{

// echo $path.": ".$file."br";//去掉此行显示的是所有的非目录文件

file_list($path."/".$file);

}

else

{

echo $path.": ".$file."br";

}

}

}

}

}

PHP怎么遍历一个文件夹下所有的文件,默认显示第一个内容。

在 php 语言里,列出一个文件夹下所有的文件,最简单的是使用 scandir 函数,示例如下:

?php

$dir    = '/tmp';

$files1 = scandir($dir);

print_r($files1);

?

scandir 原型定义如下:

array scandir ( string $directory [, int $sorting_order [, resource $context ]] )

第2个参数,可以将获取的文件列表按升、降序进行排序。

php 循环遍历文件夹下面的所有目录及文件并且每个文件都写入一句话

/****************************

* 获取目录下的所有文件

* [$dir] 文件夹路径

****************************/

function deepScanDir($dir) {

    $fileArr = array ();

    $dirArr = array ();

    $dir = rtrim($dir, '//');

    if (is_dir($dir)) {

        $dirHandle = opendir($dir);

        while (false !== ($fileName = readdir($dirHandle))) {

            $subFile = $dir . DIRECTORY_SEPARATOR . $fileName;

            if (is_file($subFile)) {

                $fileArr[] = $subFile;

            }

            elseif (is_dir($subFile)  str_replace('.', '', $fileName) != '') {

                $dirArr[] = $subFile;

                $arr = deepScanDir($subFile);

                $dirArr = array_merge($dirArr, $arr['dir']);

                $fileArr = array_merge($fileArr, $arr['file']);

            }

        }

        closedir($dirHandle);

    }

    return array (

        'dir' = $dirArr,

        'file' = $fileArr

    );

}

/****************************

* 将内容写入文件

* [$filename] 文件路径

* [$contents]  文件内容

* [$type]     读写类型

****************************/

function writeFileContents($filename, $contents, $type='a') {

    if (!($fd = fopen($filename, $type)))

        return FALSE;

    if (!fwrite($fd, $contents."\n")) {

        fclose($fd);

        return FALSE;

    }

    fclose($fd);

    return true;

}

#示例:

$dir = "/usr/local/php/test/";

$dirFiles = deepScanDir($dir);

if(!empty($dirFiles['file'])){

    foreach($dirFiles['file'] as $file){

        writeFileContents($file, "Hello", $type='a+');

    }

}