PHP递归获取目录内所有文件的实现方法_php实例

如下所示:

/**
   * 递归获取文件夹内所有文件
   * 返回一个TREE结构的文件系统
   * @param string $dir
   * @param array $filter
   * @return array $files
   */
  function scan_dir($dir, $filter = array()){
    if(!is_dir($dir))return false;
    $files = array_diff(scandir($dir), array('.', '..'));
    if(is_array($files)){
      foreach($files as $key=>$value){
        if(is_dir($dir . '/' . $value)){
          $files[$value] = scan_dir($dir . '/' . $value, $filter);
          unset($files[$key]);
          continue;
        }
        $pathinfo = pathinfo($dir . '/' . $value);
        $extension = array_key_exists('extension', $pathinfo) ? $pathinfo['extension'] : '';
        if(!empty($filter) && !in_array($extension, $filter)){
          unset($files[$key]);
        }
      }
    }
    unset($key, $value);
    return $files;
  }

以上就是小编为大家带来的PHP递归获取目录内所有文件的实现方法全部内容了,希望大家多多支持~

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索递归算法经典实例、java递归算法经典实例、js递归算法经典实例、php递归算法经典实例、java递归调用实例,以便于您获取更多的相关知识。

时间: 2024-09-18 03:34:18

PHP递归获取目录内所有文件的实现方法_php实例的相关文章

php递归获取目录内文件封装类分享

 php递归获取目录内文件封装类分享,可以递归子目录 代码如下:   代码如下: function readFileFromDir($dir) {     if (!is_dir($dir)) {         return false;     }     //打开目录     $handle = opendir($dir);     while (($file = readdir($handle)) !== false) {         //排除掉当前目录和上一个目录        

php实现当前页面点击下载文件的简单方法_php实例

php控制器中代码 public function downFile($path = ''){ if(!$path) header("Location: /"); download($path); } download文件下载函数代码 function download($file_url,$new_name=''){ if(!isset($file_url)||trim($file_url)==''){ echo '500'; } if(!file_exists($file_url)

thinkphp获取栏目和文章当前位置的方法_php实例

本文实例讲述了thinkphp获取栏目和文章当前位置的方法.分享给大家供大家参考.具体实现方法如下: 今天把博客一些细节完善了一下,其中修改了一下栏目页和文章页中的"当前位置".以前栏目很少,就用死办法做的(首页 -> 栏目的名字),现在栏目多了,渐渐二级栏目,三级栏目也来了,这样的方式显然不太合适,于是就改进了一下.也不难,利用一个递归函数就可以了. 测试效果如下图所示: 查看源文件效果: 复制代码 代码如下: <a href="http://www.jb51.

php fseek函数读取大文件两种方法_php实例

php读取大文件,使用fseek函数是最为普遍的方式,它不需要将文件的内容全部读入内存,而是直接通过指针来操作,所以效率是相当高效的.在使用fseek来对文件进行操作时,也有多种不同的方法,效率可能也是略有差别的,下面是常用的两种方法. 方法一: 首先通过fseek找到文件的最后一位EOF,然后找最后一行的起始位置,取这一行的数据,再找次一行的起始位置,再取这一行的位置,依次类推,直到找到了$num行.实现代码如下: 整个代码执行完成耗时 0.0095 (s) function tail($fp

获取PHP警告错误信息的解决方法_php实例

代码如下所示: 复制代码 代码如下: <?php/*** 更新非法字符.發送錯誤信息*  * @author* @copyright 2009-06-10*/error_reporting(E_ERROR | E_WARNING | E_PARSE);set_error_handler('displayErrorHandler');//自定義錯誤//調試信息echo "time:".date("Y-m-d H:i:s")."\n";//數據

PHP获取一个字符串中间一部分字符的方法_php实例

这是一个获取字符串中两个子串之间的子串,如从字符串www.jb51.net中获取coderbolg子串,就让这个PHP函数来实现吧,代码如下: 复制代码 代码如下: function get_between($input, $start, $end) {   $substr = substr($input, strlen($start)+strpos($input, $start),  (strlen($input) - strpos($input, $end))*(-1));   return

PHP不用递归遍历目录下所有文件的代码_php实例

实现代码: /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

Linux系统递归生成目录中文件的md5的方法_php实例

linux下使用md5sum递归生成整个目录的md5 今天要用md5sum操作目录,递归生成目录下所有文件的md5值,结果发现它不支持递归操作于是写了个php脚本处理下 代码: <?php $path ='/data/www/bbs/source'; $outfile = 'file.md5'; get_file_md5($path, $outfile); function get_file_md5($path, $outfile) { $path = rtrim($path, '/'); if

python清除指定目录内所有文件中script的方法

  本文实例讲述了python清除指定目录内所有文件中script的方法.分享给大家供大家参考.具体如下: 将脚本存储为stripscripts.py 调用语法 : python stripscripts.py 使用范例 : python stripscripts.py d:myfiles ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37