php分割大文件和php合并文件

1.分割

  1. <?php    
  2. $i    = 0;                                  //分割的块编号    
  3. $fp   = fopen("hadoop.sql","rb");           //要分割的文件    
  4. $file = fopen("split_hash.txt","a");        //记录分割的信息的文本文件,实际生产环境存在redis更合适   
  5. while(!feof($fp)){    
  6.         $handle = fopen("hadoop.{$i}.sql","wb");    
  7.         fwrite($handle,fread($fp,5242880));//切割的块大小 5m  
  8.         fwrite($file,"hadoop.{$i}.sql\r\n");    
  9.         fclose($handle);    
  10.         unset($handle);    
  11.         $i++;    
  12. }    
  13. fclose ($fp);    
  14. fclose ($file);    
  15. echo "ok";    

2.合并

  1. <?php  
  2. $hash = file_get_contents("split_hash.txt"); //读取分割文件的信息  
  3. $list = explode("\r\n",$hash);  
  4. $fp = fopen("hadoop2.sql","ab");        //合并后的文件名  
  5. foreach($list as $value){  
  6.     if(!empty($value)) {  
  7.         $handle = fopen($value,"rb");  
  8.         fwrite($fp,fread($handle,filesize($value)));  
  9.         fclose($handle);  
  10.         unset($handle);  
  11.     }  
  12. }  
  13. fclose($fp);  
  14. echo "ok";    

猜你喜欢

转载自blog.csdn.net/qq_40872870/article/details/79994698