2011-01-18 3 views

答えて

4

あなたが望むデータのファイル内のオフセットを知っているならば、常にfseek()にすることができます。もちろん、問題はファイル内のどこにfseekする必要があるかを発見することです。 SEEK_ENDをオプションとして使用することができれば、オフセットはファイルの先頭ではなくファイルの終わりに相対的なものになります。

また、file()関数を使用してファイルデータを配列にロードすることもできます。配列の各要素はファイルの行を表します。したがって、配列の最後から2番目の要素が必要な項目になります。

+0

本当に役立ちます、ありがとう! – ZombieDragon

0

残念ながら、これは簡単な方法ではありません。ファイルは行単位で格納されていないため、1行または複数の行にジャンプする順序はありません。

しかし、このスレッドをチェックアウト:fseek() by line, not bytes?

1

あなたはおそらく、あなたのファイルのカウント行末「\ n」を読む必要があります。ような何か:

function fseek_line($handle, $count) { 
    while ((--$count > 0) && (fgets($handle, 4096) !== false)) { } 
} 

あなたはfopen("file.txt", "a");

1

追加モードでの最後の行がちょうど開いて必要な場合は、N番目の行へのポインタを置くことができSplFileObject :: seek方法があります。

関連する問題