質問です。
SQLのLIMITみたいなものをファイル操作で行いたく
指定した行から何行取得する関数を作りました。

function read($file, $start, $end){
  $fp = fopen($file, "r");
  flock($fp, LOCK_EX);
  $pos = $l = 0;
  $line = array();
  while(count($line) != $end){
    $c = "";
    $pos = ftell($fp);
    while($c != "\n"){
      $c = fgetc($fp);
    }
    if($l >= $start){
      fseek($fp, $pos, SEEK_SET);
      $line[] = trim(fgets($fp));
    }
    $l++;
  }
  return $line;
}

正常に動作はするのですが、1バイトずつデータを読み込んで行く為
ファイルサイズが膨大になれば遅くならないかな?と思っています。
何か他にいい方法があればご教授お願い致します。