Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】SplFileObject::ftell()メソッドの使い方

ftellメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

ftellメソッドは、現在開いているファイルにおけるファイルポインタの現在位置を取得するメソッドです。このメソッドはPHPのSplFileObjectクラスのインスタンスを通じて利用され、ファイルシステムをオブジェクト指向的に操作する際にファイル内の位置を把握するために役立ちます。

ファイルポインタとは、ファイルを読み書きする際に、ファイルのどの位置まで処理が進んだかを示す内部的な指標のことです。ftellメソッドを実行すると、このファイルポインタが現在、ファイルの先頭から何バイト目の位置にいるかを整数値で返します。ファイルの先頭は0バイト目と数えられます。

例えば、ファイルから特定のデータを読み込んだ後、その位置を記録しておき、後で同じファイル内の記録した位置から読み込みを再開したい場合などに、このメソッドで現在位置を把握することができます。また、大きなファイルを処理する際に、全体のファイルサイズに対する現在の読み込み進捗状況を確認するといった用途にも活用できます。

正常に位置が取得できた場合はそのバイトオフセット値が返され、エラーが発生した場合はfalseが返されます。この機能により、ファイル操作の制御をより細かく行うことが可能になります。

構文(syntax)

1<?php
2$file = new SplFileObject('php://memory', 'r+');
3$file->fwrite("Example text for ftell\nLine two.");
4$file->rewind();
5$file->fgets(); // 最初の行を読み込み、ファイルポインタを移動させる
6
7$currentPosition = $file->ftell(); // 現在のファイルポインタの位置(バイト単位)を取得する
8?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|false

現在位置を示すファイルポインタのオフセット値を整数で返します。ファイルの終端を超えた場合やエラーが発生した場合はfalseを返します。

関連コンテンツ