fseek
| 解説 | ファイルポインタの位置を移動する |
|---|---|
| 書式 | int fseek( resource handle , int offset [, int whence ] ) |
int fseek( resource ファイルポインタ , int オフセット [, int 始点 ] ) |
|
| 引数 |
handle
ファイルポインタ
|
offset
移動させるバイト数
|
|
whence
オフセットの基準点
|
|
| 返値 | 0(移動に成功した時)/-1(失敗した時) |
fseek()はファイルポインタを指定したバイト数分移動します。
成功した場合は0 、失敗した場合には-1を返します。
handleファイルポインタファイルポインタを指定します。
offsetオフセット移動数を指定します。移動数は基準点(始点)から何バイト移動するかをバイト数で示します。
whence始点省略可能なオプション引数で、始点、つまり移動の開始位置を指定します。省略した場合にはファイルの最初におかれます。第3引数で指定できる値は以下の通りです。
{include file='const/fseek.tpl'}SEEK_ENDでファイル終端より手前にファイルポインタを移動する場合、第2引数のoffset(オフセット)にはマイナスの数値を指定する必要があります。
第3引数はPHP4から追加になりましたので、それ以前のバージョンでは使用できません。
ファイルを「a」モードで開いた場合、ファイルポインタの位置に関わらず常に「追記」モードになりますので、fseek()やrewind()は機能しない事になります。
※ファイル名ではなく、ファイルポインタを指定する事に注意して下さい。ファイルポインタはfopen()関数やfsockopen()関数で正常に開かれたファイルでなければいけません。
※EOFより先の位置に移動しようとしてもエラーとはならないので注意が必要です。
※"http://"または"ftp://"形式のファイルポインタに対しては使わないで下さい。
ファイルポインタの位置を先頭に戻すにはrewind()関数が便利です。
{include file='parts/goto.tpl' goto=$goto[0]}
サンプルスクリプト
簡単な利用例
- $fp = fopen( "somefile.html", "r" );
- fseek( $fp, 20 ); // ポインタを20バイト移動
- fseek( $fp, -15, SEEK_CUR ); // ポインタを現在の位置から15バイト戻す
- fseek( $fp, 0, SEEK_END ); // ポインタをファイルの終端に移動
- fclose( $fp );
rewind()関数とfseek()関数
- // 以下の記述はすべて同じ機能を持つ
- rewind( $fp );
- fseek( $fp, 0 );
- fseek($fp, 0, SEEK_SET);





