-
-
- /**
- * csv_get_lines CSV ファイル内の特定の行のデータを読み取ります
- * @param $csvfile CSV ファイルのパス
- * @param $lines 行数を読み取ります
- * @param $offset 開始行番号
- * @return array
- **/ bbs.it-home.org
- function csv_get_lines($csvfile, $lines, $offset = 0) {
- if(!$fp = fopen( $csvfile, 'r')) {
- return false;
- }
- $i = $j = 0;
- while (false !== ($line = fgets($fp))) {
- if($i++ < $offset) {
- 続行;
- }
- ブレーク;
- }
- $data = array();
- while(($j++ < $lines) && !feof($fp)) {
- $data[] = fgetcsv( $fp);
- }
- fclose($fp);
- return $data;
- }
コードをコピー
メソッドを呼び出す:
-
-
- $data = csv_get_lines('path/bigfile.csv', 10, 2000000);
- print_r($data);
-
コードをコピー
関数は主にlineを使用します位置決め このアイデアは、開始行番号をスキップすることによってファイル ポインターの位置決めを実現することです。
上記の機能は 500M 以内のファイルでテストされていますが、それより大きなファイルではテストされていません。使用または改善を検討してください。
|