【PHP8.x】SplFileObject::fseek()メソッドの使い方
fseekメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
fseekメソッドは、PHPのSplFileObjectクラスのインスタンスが操作しているファイルの読み書き位置を示すファイルポインタを移動させるメソッドです。ファイルポインタとは、ファイル内で次にデータが読み込まれる、または書き込まれる場所を示す目印のようなものです。
このメソッドを使用すると、ファイルの特定のバイト位置へファイルポインタを正確に移動させることができます。移動の基準とオフセットを指定するために、主に二つの引数を受け取ります。最初の引数offsetには、移動させたいバイト数を整数で指定します。正の数を指定するとファイルの末尾方向へ、負の数を指定するとファイルの先頭方向へポインタが移動します。二番目の引数whenceには、ファイルポインタの移動基準を指定します。SEEK_SETを指定するとファイルの先頭からoffsetバイト、SEEK_CURを指定すると現在のポインタ位置からoffsetバイト、SEEK_ENDを指定するとファイルの末尾からoffsetバイト(通常は負の値でファイルの先頭方向へ)移動します。
例えば、ファイルの途中から読み込みを再開したい場合や、特定の部分をスキップしたい場合などに利用されます。このメソッドの実行に成功すると0を、失敗した場合は-1を返します。これにより、ファイル操作の柔軟性が大幅に向上し、効率的なデータ処理が可能になります。
構文(syntax)
1<?php 2 3$file = new SplFileObject('example.txt'); 4$file->fseek(10, SEEK_SET); 5 6?>
引数(parameters)
int $offset, int $whence = SEEK_SET
- int $offset: ファイルポインタを移動させるオフセット値を指定する整数
- int $whence = SEEK_SET: ファイルポインタの基準位置を指定する定数 (SEEK_SET: ファイルの先頭, SEEK_CUR: 現在位置, SEEK_END: ファイルの末尾)
戻り値(return)
int
指定された位置にファイルポインタを移動させ、成功した場合は 0、失敗した場合は -1 を返します。