fseek を使います。
<?php
$fp = fopen("datafile.txt","r");
fseek($fp,100);
echo fgets($fp,4096);
fclose($fp);
?>
上記例では、datafile.txt を開いて、fseek で 100 バイト目までファイルポインタを移動します。
そしてポインタからファイル内容を取得して画面に出力しています。
この仕組みは、大きなサイズのファイルを、読み込み位置をキャッシュしておいて次回からその位置から読んで速度を上げるなどに使われます。
キャッシュするには、どこまで読んだ、ということを記録しておく必要がありますが、
ftell にてどこまで読んだか、ということを知ることができるので、この値をキャッシュしておくと、Apacheのログのようにデータがどんどん増えるようなファイルの場合は次回からキャッシュした位置から読み込むことが可能になります。
スポンサードリンク
PHPサンプル集