zoukankan      html  css  js  c++  java
  • Php处理大文件-分割和合并

    分割文件

    /*
       * 分割文件 
       * 默认大小 2M=10485760/5
       */
      function file_split($file,$block_size=10485760/5)
      {
           $block_info=array();
           $size=filesize($file);
           $i=0;
           while($size>0){
               $block_info[]=array(
                   'size'=>($size>=$block_size?$block_size:$size),
                   'file'=>str_replace('.txt', '',$file).'.'.($i++).'.txt'
               );
               $size-=$block_size;
           }
          
           $fp   = fopen($file,"rb");
           foreach ($block_info as $bi) {
               $handle = fopen($bi['file'],"wb");
               fwrite($handle,fread($fp,$bi['size']));     
               fclose($handle);
               unset($handle);
           }
           fclose ($fp);
           unset($fp);
      }

    合并文件  

      /*
       * 合并文件
       * 如果合并后的文件为 CPCUxcp111.flv.0.esplit 
       * 则 file=CPCUxcp111.flv,不包含.x.esplit后缀
       * save_file为另存为的文件名
       */
      function file_combine($file,$save_file=''){
       $filename=basename($file);
       $filepath=dirname($file).'/';
       $block_info=array();
       for($i=0;;$i++){
           if(file_exists($file.'.'.$i.'.esplit') && filesize($file.'.'.$i.'.esplit')>0){
               $block_info[]=$file.'.'.$i.'.esplit';
           }else{
               break;
           }
       }
       if($save_file){
           $fp   = fopen($save_file,"wb");
       }else{
           $fp   = fopen($file,"wb");
       }
       foreach ($block_info as $block_file) {
           $handle = fopen($block_file,"rb");
           fwrite($fp,fread($handle,filesize($block_file)));     
           fclose($handle);
           unset($handle);
       }
       fclose ($fp);
       unset($fp);
      }

    测试代码:

    file_split('d:/demo.txt');
    • 1

      问题算是解决了,不过这方面有时间还应该研究一下

  • 相关阅读:
    C#添加修改删除文件文件夹大全
    实用且不花哨的js代码大全
    vs2005 2008快捷键
    C#:String.Format数字格式化输出
    获取农历日期
    Vim 常用快捷键
    一个简单的makefile示例及其注释
    nginx源码剖析(1)概要
    利用Vim 打造开发环境(一)>Linux 字符界面 vim的配置
    Ubuntu 9.10设置摘要
  • 原文地址:https://www.cnblogs.com/yyjie/p/7181759.html
Copyright © 2011-2022 走看看