码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-08-16 21:59:29      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:pre   code   log   下载   ret   方式   filename   nbsp   integer   

/**
 * 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日

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

标签:pre   code   log   下载   ret   方式   filename   nbsp   integer   

原文地址:http://www.cnblogs.com/sochishun/p/7375328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!