• php 获取某个文件夹及其子文件夹的所有文件并支持文件格式的筛选


    1年前之前写过一个批量将文件转化成utf-8编码的函数,最近想用,却找不到了,今天重新了个获取某文件夹下所有文件的方法,且做记录,供以后使用。

    <?php 
    //php 获取某个文件夹及其子文件夹的所有文件并支持文件格式的筛选
    function getAllFiles($folder, &$fileList=array(), $fileType=array()) {
        $folder = empty($folder) ? dirname(__FILE__) : $folder;    
        $folder = str_replace('\\','/',$folder);
        $fileList = empty($fileList) ? array() : $fileList;
        $d = dir($folder);
        while (false !== ($file = $d->read())) {
           if($file != '.' && $file != '..') {
                $f = $folder.'/'.$file;
                if(is_dir($f)) {
                    getAllFiles($f, $fileList ,$fileType);
                } else {
                    if(!empty($fileType)) {
                        if(in_array(pathinfo($f, PATHINFO_EXTENSION), $fileType)) {
                            $fileList[] =  $f;
                        }
                    } else {
                        $fileList[] =  $f;
                    }
                }
           }
        }
        $d->close(); 
    }
    
    //转换到期望的编码格式
    function convertFileCharset($files, $inCharset='', $outCharset='') {
        foreach($files as $file) {
            $contents = file_get_contents($file);
            $inCharset = mb_detect_encoding($contents) === false ? $inCharset : mb_detect_encoding($contents);
            $outCharset = empty($outCharset) ? $inCharset : $outCharset;
            if(!empty($contents)) {
                $contents = iconv($inCharset, $outCharset.'//ignore', $contents);
                file_put_contents($file,$contents);
            }
        }
    }
    
    $t1 = microtime(true);
    $folder = dirname(__FILE__).'/develop';
    $fileList = array();
    getAllFiles($folder, $fileList, array('php','htm','css','js'));
    //echo '<pre>';print_r($fileList);exit;
    convertFileCharset($fileList, 'GBK', 'UTF-8');
    $t2 = microtime(true);
    echo $t2 - $t1 ;
  • 相关阅读:
    不能对同一张表先查询后更新的解决方案
    Maven的一些常用命令
    在sql中使用函数,遇到net.sf.jsqlparser.parser.ParseException异常
    2017年秋季遇到的兼容问题总结
    最近关于css样式重构的一点心得体会
    CSS Modules使用方法
    上传图片获取base64位编码
    移动端自适应莫名其妙撑开高度的问题
    解决ie8下页面刚出现时候的晃动问题
    解决ie8下面placeholder显示问题
  • 原文地址:https://www.cnblogs.com/beceo/p/2406025.html
Copyright © 2020-2023  润新知