[PHP] 将大文件分割成多个小文件 →→→→→进入此内容的聊天室

来自 , 2019-12-29, 写在 PHP, 查看 134 次.
URL http://www.code666.cn/view/21c5bba1
  1. <?php
  2. /*
  3.  * 将大文件分割成多个小文件
  4.  */
  5. $i    = 0;                                         //分割的块编号
  6. $fp   = fopen("vso_users.txt","r");                //要分割的文件
  7. $file = fopen("vso_users/split_hash.txt","a");     //记录分割的信息的文本文件
  8. while(!feof($fp))
  9. //while($i<5)
  10. {
  11.     $handle = fopen("vso_users/{$i}.vso_users.txt","w");
  12.     $data = fread($fp,1024*1024*1);  // 1M  可以自定义.就是每个所分割的文件大小
  13.    
  14.     if(substr($data,-2) != "\n"){
  15.         //该块最后不为换行符时,将指针前移到最后一个换行符之后
  16.         $offset = strlen($data)-(strrpos($data,"\n")+1);
  17.         if(!feof($fp)){
  18.             //文件未结束,则前移指针位置(保证读取内容的最后一行总是整行内容);若已读到文件结束位置则不移动文件指针位置。
  19.             fseek($fp,-$offset,SEEK_CUR);
  20.         }
  21.         //去掉最后一个换行符及其之后的内容
  22.         $data = substr($data,0,strrpos($data,"\n"));
  23.     }
  24.    
  25.     fwrite($handle,$data);            
  26.     fwrite($file,"qqdjz_002.txt.{$i}".substr($data,-2)."\r\n");
  27.     fclose($handle);
  28.     unset($handle);
  29.     $i++;
  30. }
  31. fclose ($fp);
  32. fclose ($file);
  33. echo "split finished!";
  34.  
  35. ?>

回复 "将大文件分割成多个小文件"

这儿你可以回复上面这条便签

captcha