Home > php教程 > php手册 > body text

大文本文件分割成若干小文件的PHP程序

WBOY
Release: 2016-06-06 20:11:00
Original
1219 people have browsed it

我们在做大数据量网站的时候,有时遇到原始数据量过大的情况,如果都做成一个网站会让服务器负载过高、用户打开很慢,这时往往需要分为多个子网站来做,原始数据也需要进行分割,以便分别导入。 下面是将1个美国数据文件分割为50个各州数据文件的例子usa2sta

  我们在做大数据量网站的时候,有时遇到原始数据量过大的情况,如果都做成一个网站会让服务器负载过高、用户打开很慢,这时往往需要分为多个子网站来做,原始数据也需要进行分割,以便分别导入。

  下面是将1个美国数据文件分割为50个各州数据文件的例子usa2state.php:

<?php //程序开头注释部分开始
/*
usa.tsv分割为各州.tsv
*/
//程序开头注释部分结束
$file_usa="usa.tsv";//需要分割的整个美国文件
$file_ak="ak.tsv";//分割到各个州文件
$file_al="al.tsv";
$file_ar="ar.tsv";
$file_az="az.tsv";
$file_ca="ca.tsv";
$file_co="co.tsv";
$file_ct="ct.tsv";
$file_dc="dc.tsv";
$file_de="de.tsv";
$file_fl="fl.tsv";
$file_ga="ga.tsv";
$file_hi="hi.tsv";
$file_ia="ia.tsv";
$file_id="id.tsv";
$file_il="il.tsv";
$file_in="in.tsv";
$file_ks="ks.tsv";
$file_ky="ky.tsv";
$file_la="la.tsv";
$file_ma="ma.tsv";
$file_md="md.tsv";
$file_me="me.tsv";
$file_mi="mi.tsv";
$file_mn="mn.tsv";
$file_mo="mo.tsv";
$file_ms="ms.tsv";
$file_mt="mt.tsv";
$file_nc="nc.tsv";
$file_nd="nd.tsv";
$file_ne="ne.tsv";
$file_nh="nh.tsv";
$file_nj="nj.tsv";
$file_nm="nm.tsv";
$file_nv="nv.tsv";
$file_ny="ny.tsv";
$file_oh="oh.tsv";
$file_ok="ok.tsv";
$file_or="or.tsv";
$file_pa="pa.tsv";
$file_ri="ri.tsv";
$file_sc="sc.tsv";
$file_sd="sd.tsv";
$file_tn="tn.tsv";
$file_tx="tx.tsv";
$file_ut="ut.tsv";
$file_va="va.tsv";
$file_vt="vt.tsv";
$file_wa="wa.tsv";
$file_wi="wi.tsv";
$file_wv="wv.tsv";
$file_wy="wy.tsv";
$file_others="others.tsv";//51个州以外的数据
$fp_usa=fopen($file_usa,"r");//以只读的方式打开文件
$fp_ak=fopen($file_ak,"w");//以只写的方式打开文件
$fp_al=fopen($file_al,"w");
$fp_ar=fopen($file_ar,"w");
$fp_az=fopen($file_az,"w");
$fp_ca=fopen($file_ca,"w");
$fp_co=fopen($file_co,"w");
$fp_ct=fopen($file_ct,"w");
$fp_dc=fopen($file_dc,"w");
$fp_de=fopen($file_de,"w");
$fp_fl=fopen($file_fl,"w");
$fp_ga=fopen($file_ga,"w");
$fp_hi=fopen($file_hi,"w");
$fp_ia=fopen($file_ia,"w");
$fp_id=fopen($file_id,"w");
$fp_il=fopen($file_il,"w");
$fp_in=fopen($file_in,"w");
$fp_ks=fopen($file_ks,"w");
$fp_ky=fopen($file_ky,"w");
$fp_la=fopen($file_la,"w");
$fp_ma=fopen($file_ma,"w");
$fp_md=fopen($file_md,"w");
$fp_me=fopen($file_me,"w");
$fp_mi=fopen($file_mi,"w");
$fp_mn=fopen($file_mn,"w");
$fp_mo=fopen($file_mo,"w");
$fp_ms=fopen($file_ms,"w");
$fp_mt=fopen($file_mt,"w");
$fp_nc=fopen($file_nc,"w");
$fp_nd=fopen($file_nd,"w");
$fp_ne=fopen($file_ne,"w");
$fp_nh=fopen($file_nh,"w");
$fp_nj=fopen($file_nj,"w");
$fp_nm=fopen($file_nm,"w");
$fp_nv=fopen($file_nv,"w");
$fp_ny=fopen($file_ny,"w");
$fp_oh=fopen($file_oh,"w");
$fp_ok=fopen($file_ok,"w");
$fp_or=fopen($file_or,"w");
$fp_pa=fopen($file_pa,"w");
$fp_ri=fopen($file_ri,"w");
$fp_sc=fopen($file_sc,"w");
$fp_sd=fopen($file_sd,"w");
$fp_tn=fopen($file_tn,"w");
$fp_tx=fopen($file_tx,"w");
$fp_ut=fopen($file_ut,"w");
$fp_va=fopen($file_va,"w");
$fp_vt=fopen($file_vt,"w");
$fp_wa=fopen($file_wa,"w");
$fp_wi=fopen($file_wi,"w");
$fp_wv=fopen($file_wv,"w");
$fp_wy=fopen($file_wy,"w");
$fp_others=fopen($file_others,"w");
$count_line=0;
while(!(feof($fp_usa))) {
$line_array=fgetcsv($fp_usa,0,"\t",chr(0));//读取文件的一行
$state=strtolower($line_array[10]);//读取其中州的代码
switch ($state) {//分别写到对应的州文件
case "ak":
  fputs($fp_ak, implode($line_array,"\t")."\n");
  break;
case "al":
  fputs($fp_al, implode($line_array,"\t")."\n");
  break;
case "ar":
  fputs($fp_ar, implode($line_array,"\t")."\n");
  break;
case "az":
  fputs($fp_az, implode($line_array,"\t")."\n");
  break;
case "ca":
  fputs($fp_ca, implode($line_array,"\t")."\n");
  break;
case "co":
  fputs($fp_co, implode($line_array,"\t")."\n");
  break;
case "ct":
  fputs($fp_ct, implode($line_array,"\t")."\n");
  break;
case "dc":
  fputs($fp_dc, implode($line_array,"\t")."\n");
  break;
case "de":
  fputs($fp_de, implode($line_array,"\t")."\n");
  break;
case "fl":
  fputs($fp_fl, implode($line_array,"\t")."\n");
  break;
case "ga":
  fputs($fp_ga, implode($line_array,"\t")."\n");
  break;
case "hi":
  fputs($fp_hi, implode($line_array,"\t")."\n");
  break;
case "ia":
  fputs($fp_ia, implode($line_array,"\t")."\n");
  break;
case "id":
  fputs($fp_id, implode($line_array,"\t")."\n");
  break;
case "il":
  fputs($fp_il, implode($line_array,"\t")."\n");
  break;
case "in":
  fputs($fp_in, implode($line_array,"\t")."\n");
  break;
case "ks":
  fputs($fp_ks, implode($line_array,"\t")."\n");
  break;
case "ky":
  fputs($fp_ky, implode($line_array,"\t")."\n");
  break;
case "la":
  fputs($fp_la, implode($line_array,"\t")."\n");
  break;
case "ma":
  fputs($fp_ma, implode($line_array,"\t")."\n");
  break;
case "md":
  fputs($fp_md, implode($line_array,"\t")."\n");
  break;
case "me":
  fputs($fp_me, implode($line_array,"\t")."\n");
  break;
case "mi":
  fputs($fp_mi, implode($line_array,"\t")."\n");
  break;
case "mn":
  fputs($fp_mn, implode($line_array,"\t")."\n");
  break;
case "mo":
  fputs($fp_mo, implode($line_array,"\t")."\n");
  break;
case "ms":
  fputs($fp_ms, implode($line_array,"\t")."\n");
  break;
case "mt":
  fputs($fp_mt, implode($line_array,"\t")."\n");
  break;
case "nc":
  fputs($fp_nc, implode($line_array,"\t")."\n");
  break;
case "nd":
  fputs($fp_nd, implode($line_array,"\t")."\n");
  break;
case "ne":
  fputs($fp_ne, implode($line_array,"\t")."\n");
  break;
case "nh":
  fputs($fp_nh, implode($line_array,"\t")."\n");
  break;
case "nj":
  fputs($fp_nj, implode($line_array,"\t")."\n");
  break;
case "nm":
  fputs($fp_nm, implode($line_array,"\t")."\n");
  break;
case "nv":
  fputs($fp_nv, implode($line_array,"\t")."\n");
  break;
case "ny":
  fputs($fp_ny, implode($line_array,"\t")."\n");
  break;
case "oh":
  fputs($fp_oh, implode($line_array,"\t")."\n");
  break;
case "ok":
  fputs($fp_ok, implode($line_array,"\t")."\n");
  break;
case "or":
  fputs($fp_or, implode($line_array,"\t")."\n");
  break;
case "pa":
  fputs($fp_pa, implode($line_array,"\t")."\n");
  break;
case "ri":
  fputs($fp_ri, implode($line_array,"\t")."\n");
  break;
case "sc":
  fputs($fp_sc, implode($line_array,"\t")."\n");
  break;
case "sd":
  fputs($fp_sd, implode($line_array,"\t")."\n");
  break;
case "tn":
  fputs($fp_tn, implode($line_array,"\t")."\n");
  break;
case "tx":
  fputs($fp_tx, implode($line_array,"\t")."\n");
  break;
case "ut":
  fputs($fp_ut, implode($line_array,"\t")."\n");
  break;
case "va":
  fputs($fp_va, implode($line_array,"\t")."\n");
  break;
case "vt":
  fputs($fp_vt, implode($line_array,"\t")."\n");
  break;
case "wa":
  fputs($fp_wa, implode($line_array,"\t")."\n");
  break;
case "wi":
  fputs($fp_wi, implode($line_array,"\t")."\n");
  break;
case "wv":
  fputs($fp_wv, implode($line_array,"\t")."\n");
  break;
case "wy":
  fputs($fp_wy, implode($line_array,"\t")."\n");
  break;
default:
  fputs($fp_others, implode($line_array,"\t")."\n");
}
$count_line++;
print "\n$count_line : $state\n";
//print_r ($line_array);
//if ($count_line>=3) exit;
}
print "total=$count_line\n";
fclose($fp_usa);
fclose($fp_ak);
fclose($fp_al);
fclose($fp_ar);
fclose($fp_az);
fclose($fp_ca);
fclose($fp_co);
fclose($fp_ct);
fclose($fp_dc);
fclose($fp_de);
fclose($fp_fl);
fclose($fp_ga);
fclose($fp_hi);
fclose($fp_ia);
fclose($fp_id);
fclose($fp_il);
fclose($fp_in);
fclose($fp_ks);
fclose($fp_ky);
fclose($fp_la);
fclose($fp_ma);
fclose($fp_md);
fclose($fp_me);
fclose($fp_mi);
fclose($fp_mn);
fclose($fp_mo);
fclose($fp_ms);
fclose($fp_mt);
fclose($fp_nc);
fclose($fp_nd);
fclose($fp_ne);
fclose($fp_nh);
fclose($fp_nj);
fclose($fp_nm);
fclose($fp_nv);
fclose($fp_ny);
fclose($fp_oh);
fclose($fp_ok);
fclose($fp_or);
fclose($fp_pa);
fclose($fp_ri);
fclose($fp_sc);
fclose($fp_sd);
fclose($fp_tn);
fclose($fp_tx);
fclose($fp_ut);
fclose($fp_va);
fclose($fp_vt);
fclose($fp_wa);
fclose($fp_wi);
fclose($fp_wv);
fclose($fp_wy);
fclose($fp_others);
?>
Copy after login

?

自由标签:

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template