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 }