ファイルシステム関数
Home >> PHP関数リファレンス >> ファイルシステム関数 >> fseek

ファイルシステム関数

解説 ファイルポインタの位置を移動する
書式 int fseek( resource handle, int offset [, int whence ] )
int fseek( resource ファイルポインタ, int オフセット [, int 始点 ] )
引数 handle ファイルポインタ
offset 移動させるバイト数
whence オフセットの基準点
返値 0(移動に成功した時)/-1(失敗した時)

PHPマニュアル:ファイルシステム関数 fseek()

fseek()関数:概略解説

fseek()は、ファイルポインタを指定したバイト数分移動します。

fseek()関数:返り値解説

成功した場合は0 、失敗した場合には-1を返します。

fseek()関数:引数解説

handle ファイルポインタ

ファイルポインタを指定します。

offset オフセット

移動数を指定します。移動数は基準点(始点)から何バイト移動するかをバイト数で示します。

whence 始点

省略可能なオプション引数で、始点、つまり移動の開始位置を指定します。省略した場合にはファイルの最初におかれます。第3引数で指定できる値は以下の通りです。

fseek()関数における始点
whence 説明
SEEK_SET 始点をファイルの最初に置く(デフォルト)
SEEK_CUR 始点を現在のファイルポインタの位置に置く
SEEK_END 始点をファイルの終端に置く

SEEK_ENDでファイル終端より手前にファイルポインタを移動する場合、第2引数のoffset(オフセット)にはマイナスの数値を指定する必要があります。

fseek()関数:補足解説

第3引数はPHP4から追加になりましたので、それ以前のバージョンでは使用できません。

ファイルを「a」モードで開いた場合、ファイルポインタの位置に関わらず常に「追記」モードになりますので、fseek()rewind()は機能しない事になります。

fseek()関数:注意

ファイル名ではなく、ファイルポインタを指定する事に注意して下さい。ファイルポインタはfopen()関数やfsockopen()関数で正常に開かれたファイルでなければいけません。

EOFより先の位置に移動しようとしてもエラーとはならないので注意が必要です。

"http://"または"ftp://"形式のファイルポインタに対しては使わないで下さい。

fseek()関数:その他

ファイルポインタの位置を先頭に戻すにはrewind()関数が便利です。

サンプルrewind()関数とfseek()関数

参考関数

  • fopen() ---- ファイルまたはURLを開く
  • ftell() ---- 現在のファイルポインタの位置を取得
  • rewind() ---- ファイルポインタの位置を先頭に戻す

サンプルスクリプト

簡単な利用例

<?php
$fp
= fopen( "somefile.html", "r" );
fseek( $fp, 20 ); // ポインタを20バイト移動
fseek( $fp, -15, SEEK_CUR ); // ポインタを現在の位置から15バイト戻す
fseek( $fp, 0, SEEK_END );   // ポインタをファイルの終端に移動
fclose( $fp );
?>

rewind()関数とfseek()関数

<?php
// 以下の記述はすべて同じ機能を持つ
rewind( $fp );
fseek( $fp, 0 );
fseek($fp, 0, SEEK_SET);
?>