分割文件

  1. /*
  2.    * 分割文件
  3.    * 默认大小 2M=10485760/5
  4.    */
  5.   function file_split($file,$block_size=10485760/5)
  6.   {
  7.    $block_info=array();
  8.    $size=filesize($file);
  9.    $i=0;
  10.    while($size>0){
  11.    $block_info[]=array(
  12.    'size'=>($size>=$block_size?$block_size:$size),
  13.    'file'=>str_replace('.txt', '',$file).'.'.($i++).'.txt'
  14.    );
  15.    $size-=$block_size;
  16.    }
  17.   
  18.    $fp = fopen($file,"rb");
  19.    foreach ($block_info as $bi) {
  20.    $handle = fopen($bi['file'],"wb");
  21.    fwrite($handle,fread($fp,$bi['size']));
  22.    fclose($handle);
  23.    unset($handle);
  24.    }
  25.    fclose ($fp);
  26.    unset($fp);
  27.   }

合并文件  

  1.   /*
  2.    * 合并文件
  3.    * 如果合并后的文件为 CPCUxcp111.flv.0.esplit
  4.    * 则 file=CPCUxcp111.flv,不包含.x.esplit后缀
  5.    * save_file为另存为的文件名
  6.    */
  7.   function file_combine($file,$save_file=''){
  8.    $filename=basename($file);
  9.    $filepath=dirname($file).'/';
  10.    $block_info=array();
  11.    for($i=0;;$i++){
  12.    if(file_exists($file.'.'.$i.'.esplit') && filesize($file.'.'.$i.'.esplit')>0){
  13.    $block_info[]=$file.'.'.$i.'.esplit';
  14.    }else{
  15.    break;
  16.    }
  17.    }
  18.    if($save_file){
  19.    $fp = fopen($save_file,"wb");
  20.    }else{
  21.    $fp = fopen($file,"wb");
  22.    }
  23.    foreach ($block_info as $block_file) {
  24.    $handle = fopen($block_file,"rb");
  25.    fwrite($fp,fread($handle,filesize($block_file)));
  26.    fclose($handle);
  27.    unset($handle);
  28.    }
  29.    fclose ($fp);
  30.    unset($fp);
  31.   }

测试代码:

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

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

Php处理大文件-分割和合并的更多相关文章

  1. python学习——大文件分割与合并

    在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...

  2. python实现大文件分割与合并

    小U盘传大电影时可以免去用winrar分割文件时的压缩和解压缩过程. file.py import sys from os.path import exists fileCount = 0 def s ...

  3. Linux中split大文件分割和cat合并文件

    当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输.这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件. 1.分割 ...

  4. java:快速文件分割及合并

    文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...

  5. (转)java:快速文件分割及合并

    文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...

  6. JAVA IO分析三:IO总结&文件分割与合并实例

    时间飞逝,马上就要到2018年了,今天我们将要学习的是IO流学习的最后一节,即总结回顾前面所学,并学习一个案例用于前面所学的实际操作,下面我们就开始本节的学习: 一.原理与概念 一.概念流:流动 .流 ...

  7. c语言文件分割与合并

    一.综述 c语言操作文件通过文件指针FILE*,每个要操作的文件必须打开然后才能读写. 注意事项: @1分割与合并文件最好使用二进制模式即"rb"或"wb",这 ...

  8. PHP + JS 实现大文件分割上传

    服务器上传文件会有一定的限制.避免内存消耗过大影响性能,在 php.ini 配置文件中,有几个影响参数: upload_max_filesize = 2M //PHP最大能接受的文件大小 post_m ...

  9. c#大文件分割过程

    需求: 在项目开发中,我们会遇到单个文件大小超过1TB的文件,这样的文件只能进行单文件读取,往往会造成读取完成耗时过长,导致客户在使用体验过程中不满意. 为了解决提升大文件的解析速度,我想到了先分割大 ...

随机推荐

  1. 基于树莓派3B+Python3.5的OpenCV3.4的配置教程

    https://www.cnblogs.com/Pyrokine/p/8921285.html

  2. android 软键盘监听显示和隐藏

    githup中找到:https://github.com/yescpu/KeyboardChangeListener import android.app.Activity; import andro ...

  3. python write file

    fileHandle = open ( 'test.txt', 'a' ) fileHandle.write ( '\n\nBottom line.' ) fileHandle.close() 转自: ...

  4. Linux删除乱码文件的方法

    当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,mv等命令管理文件了. 我们可以通过以下几种方法删除linux下的乱码文件.(文件名为乱码) l  方法1 我们知道每个文 ...

  5. linux下apache php配置redis

    1.安装redis 第一步: 下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz 上传phpredis-2.2.4.tar.gz ...

  6. Oracle11g完全卸载方法

    一.在oracle11G以前卸载oracle会存在卸载不干净,导致再次安装失败的情况,在运行services.msc打开服务,停止Oracle的所有服务. 二. oracle11G自带一个卸载批处理\ ...

  7. android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据

    主要是基于HTTP协议与服务端进行交互. 涉及到的类和接口有:URL.HttpURLConnection.HttpClient等 URL: 使用一个String类型的url构造一个URL对象,如: U ...

  8. 怎样过滤跨站恶意脚本攻击(XSS)

    什么是XSS? XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见于web application中的计算机安全漏洞.XSS通过在用户端注入恶意的可运行脚本,若服务器端对用 ...

  9. 九度OJ 1338:角斗士 (递归、DP)

    时间限制:3 秒 内存限制:32 兆 特殊判题:否 提交:213 解决:66 题目描述: 角斗士是古罗马奴隶社会的一种特殊身份的奴隶,他们的职责是在角斗场上进行殊死搏斗,为了人们提供野蛮的娱乐.他们的 ...

  10. centos7.0下删除yum和python之后恢复的办法

    centos 7如果卸载了yum和python之后恢复的办法(该方法已经测试). 下载 地址 http://mirrors.163.com/centos/7/os/x86_64/Packages/ 下 ...