網上有很多文本分割軟件都是按字節大小來分割的,主要用於小說類的文本分割,對於比較有規則的內容按行數進行分割非常不方便,所以我寫了一個按行數把文本文件分割成多個文本文件
主要作用:比如您獲取上萬個長尾關鍵詞,你想通過隨機的方式調用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='';
}
}
?>