PHP大ファイルを読み込む追記
5433 ワード
PHPはファイルを読み込む時、私達は多くfgets関数の1行1行の読み取りを採用して、while循環、feof関数を採用してファイルの末尾に着くかどうかを判断します.しかし、1行を読むのが面倒な場合があります.指定した行を読み込んで処理することができます.例えばtest.txtファイルにuid:fuid 1,fuid 2,fuid 3が読み込まれてデータベースに挿入され、1行を読んで1行を挿入すると、データベースに対するオーバーヘッドが大きすぎます(接続を確立するなどの操作が必要です).複数の行を読み取ることを選択して、配列のように保存してから、一括操作を行うことができます.これにより、もともと100本のデータが50本挿入される可能性があります.これにより、データベースは2回接続するだけで、オーバーヘッドが大幅に減少します.
1 /**
2 *
3 * , ,
4 *
5 */
6
7 function read_file($fileName, $length = 4) {
8
9 if(!file_exists($fileName)) {
10 die($fileName.'file not exists!');
11 }
12
13 $inputHandle = fopen($fileName,'r');
14 $index = 0;
15 $dataArray = array();
16
17 while(!feof($inputHandle)) {
18 $line = trim(fgets($inputHandle));
19 //
20 if($line != '') {
21 // $line ,
22 $dataArray[] = $line;
23 $index ++;
24 }
25
26 if(feof($inputHandle) || $line == '' || $index == $length) {
27 //do someting
28 echo "----------".count($dataArray)."-----------
";
29 //
30 $index = 0;
31 //
32 $dataArray = array();
33 }
34 }
35 }