ファイルシステム関数
| 解説 | ファイルポインタの位置を移動する |
|---|---|
| 書式 | int fseek( resource handle, int offset [, int whence ] ) |
int fseek( resource ファイルポインタ, int オフセット [, int 始点 ] ) |
|
| 引数 |
handle
ファイルポインタ
|
offset
移動させるバイト数
|
|
whence
オフセットの基準点
|
|
| 返値 | 0(移動に成功した時)/-1(失敗した時) |
fseek()は、ファイルポインタを指定したバイト数分移動します。
handle
ファイルポインタ
offset
オフセット
whence
始点
省略可能なオプション引数で、始点、つまり移動の開始位置を指定します。省略した場合にはファイルの最初におかれます。第3引数で指定できる値は以下の通りです。
| whence | 説明 |
|---|---|
SEEK_SET |
始点をファイルの最初に置く(デフォルト) |
SEEK_CUR |
始点を現在のファイルポインタの位置に置く |
SEEK_END |
始点をファイルの終端に置く |
SEEK_ENDでファイル終端より手前にファイルポインタを移動する場合、第2引数のoffset(オフセット)にはマイナスの数値を指定する必要があります。
第3引数はPHP4から追加になりましたので、それ以前のバージョンでは使用できません。
ファイルを「a」モードで開いた場合、ファイルポインタの位置に関わらず常に「追記」モードになりますので、fseek()やrewind()は機能しない事になります。
fopen()関数やfsockopen()関数で正常に開かれたファイルでなければいけません。
※EOFより先の位置に移動しようとしてもエラーとはならないので注意が必要です。
※"http://"または"ftp://"形式のファイルポインタに対しては使わないで下さい。
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);
?>


