首页 > 技术文章 > 如何把一个TXT文本文件按行数分割成多个文本文件

alex-13 2013-11-14 20:46 原文

2011-04-27 12:00:24|  分类: 默认分类 |字号 订阅

 
 

网上有很多文本分割软件都是按字节大小来分割的,主要用于小说类的文本分割,对于比较有规则的内容按行数进行分割非常不方便,所以我写了一个按行数把文本文件分割成多个文本文件

主要作用:比如您获取上万个长尾关键词,你想通过随机的方式调用100条或者50条。假如是只有一个文本文件(上万行),你需要读取该文件所有行到数组,然后打乱数组,读取前50条,效率非常低。

而你把该文本文件用分割器分割成1.txt  2.txt…… 100.txt(随机打乱了行数),那么你只要先随机从1-100中产生一个随机数

然后读取该随机数文本(比如55对应 55.txt),是不是效率很高呀。

 

<?php  
 // txt按行无序分割器    
$fileName = "1.txt"; //源TXT文件   
$start=1;     //分割TXT初始值   
$num=10;     //每个TXT多少行   
$content = file_get_contents($fileName);   
//$content =iconv("UTF-8", "gb2312//IGNORE",$content);    //如果原TXT为UTF-8编码,请取消注释   
$contents = explode("\r\n",$content);   
shuffle($contents);   //打乱顺序   
$countcount = count($contents);    
echo  $count;   
$newcontents='';   
$j=0;   
for($i=0;$i<$count;$i++){    
$newcontents.=$contents[$i]."\r\n";   
if ((($i % $num==0) && $i<>0) || ($i==$count-1) )   
    {   
  
$handle=fopen("txt/".($start+$j).".txt",'w');    
 fwrite($handle,$newcontents);    
 fclose($handle);   
    $j++;   
    $newcontents='';   
    }   
}   
?>  

推荐阅读