php高效遍历文件夹、高效读取文件

/**
 * PHP高效遍历文件夹
 * @param string $path 目录路径
 * @param integer $level 目录深度
 */
function fn_scandir($path = ‘./‘, $level = 0) {
    $file = new FilesystemIterator($path);
    $filename = ‘‘;
    $prefix = ‘‘;
    $url = ‘‘;
    foreach ($file as $fileinfo) {
        $filename = $fileinfo->getFilename();
        $filepath = $path . $filename;
        $prefix = $level > 0 ? (‘|‘ . str_repeat(‘--‘, $level)) : ‘‘;
        if ($fileinfo->isDir()) {
            $filepath = $filepath . ‘/‘;
            $url = ‘<a href="?path=‘ . $filepath . ‘">‘ . $filename . ‘</a>‘;
            echo ‘<strong>‘ . $prefix . $url . ‘/</strong>‘ . ‘<br />‘;
        } else {
            $url = ‘<a href="?path=‘ . $filepath . ‘">‘ . $filename . ‘</a>‘;
            echo $prefix . $url . ‘<br />‘;
        }
        if ($fileinfo->isDir()) {
            fn_scandir($filepath, $level + 1);
        }
    }
}

/**
 * PHP高效读取文件
 * @param string $filepath
 * @return string
 */
function fn_tail($filepath) {
    if (file_exists($filepath)) {
        $fp = fopen($filepath, "r");
        $str = "";
        $buffer = 1024; //每次读取 1024 字节
        while (!feof($fp)) {//循环读取,直至读取完整个文件
            $str .= fread($fp, $buffer);
        }
        return $str;
    }
}

示例文件:[下载]


版权声明:本文采用署名-非商业性使用-相同方式共享(CC BY-NC-SA 3.0 CN)国际许可协议进行许可,转载请注明作者及出处。
本文标题:php高效遍历文件夹、高效读取文件
本文链接:http://www.cnblogs.com/sochishun/p/7375328.html
本文作者:SoChishun (邮箱:14507247#qq.com | 博客:http://www.cnblogs.com/sochishun/)
发表日期:2017年8月16日

时间: 2024-10-12 15:34:55

php高效遍历文件夹、高效读取文件的相关文章

R8&mdash;批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数

一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到以公司ID生成的指定文件夹下!所以第一个问题就是200多个公司,不可能每一次下载,都要去点击:新建文件夹,然后对文件夹命名,too boring and monotonous.嘿嘿,幸好有R的陪伴! let's do it,来看看R如何完成这些工作! 主要用到两个函数 一. dir.create-生

python 语料处理(从文件夹中读取文件夹中文件,分词,去停用词,去单个字)

# -*- coding:utf8 -*- import os import jieba def splitSentence(inputFile): fin = open(inputFile, 'r') #以读的方式打开文件 global fout #以写得方式打开文件 #print fin global stop for eachLine in fin: #print eachLine line = eachLine.strip()#.decode('utf-8', 'ignore') #去除

Storm监控文件夹变化 统计文件单词数量

监控指定文件夹,读取文件(新文件动态读取)里的内容,统计单词的数量. FileSpout.java,监控文件夹,读取新文件内容 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

给一个文件夹,返回该文件夹下所有文件的数量

<?php 给一个文件夹,读取文件夹里面文件的数量 echo ShuLiang("./gai.php"); 给一个文件夹,返回该文件夹下所有文件的数量 function ShuLiang($filename) { $sum=0; 定一个初始值 变量 $dir = opendir($filename); while($f = readdir($dir)) { if($f=="." || $f=="..") 排除 两个文件 { } else {

Python遍历文件夹和读写文件的方法

本文和大家分享的主要是python开发中遍历文件夹和读写文件的相关内容,一起来看看吧,希望对大家学习和使用这部分内容有所帮助. 需 求 分 析 1.读取指定目录下的所有文件 2.读取指定文件,输出文件内容 3.创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入.创建.复制.重命名文件要将近60行代码: 不过简洁的代价是牺牲了一点点运行速度,但随着硬件性能的提升,运行速度的差异会越来越小,直到人类无法察觉~ #

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E"Const TR_COL_NAME = "C"Const TR_COL_COUNT = "D"Const TR_COL_TREE_START = "F"Const TR_ROW_HEIGHT = 23Const TR_COL_LINE_WIDT

OpenCV实现遍历文件夹下所有文件

OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1).GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹:(2).GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件:(3).GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹. 若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块. 下面为测试代码: cv::Dire

File:迭代读取文件夹下的文件或者文件夹

在项目中,有时需要获取文件夹下的所有文件或者文件夹,以及对应的最后修改时间.下面的代码实现了迭代读取指定路径下的文件,修改时间可以自己加lastModified()方法. public class Folder { public static void main(String[] args) { String path="F:/111"; readFile(path); } /**迭代读取文件夹下所有子文件或者文件夹 * @param path 文件夹路径 */ public stat

[003]从文件夹中读取所有图片或者文件

从javascript的角度上看,因为语言的关系,是不能从文件夹读取文件的. 但是,我们可以同activeX的方法来获取后,传递给javascript使用. 详细代码如下: 1 var fileNameArray = []; 2 function searchFiles1(dir){ 3 if (dir.substr(dir.length-1, 1) != "\\" && dir.substr(dir.length-1, 1) != "/") 4 d