fscanf
fstat
ファイルシステム 関数
PHP Manual

# fseek

(PHP 4, PHP 5)

fseek — ファイルポインタを移動する

### 説明

int fseek ( resource `$handle` , int `$offset` [, int `$whence` = SEEK_SET ] )

`handle` が指しているファイルのファイル位置識別子を ファイル・ストリーム中の `offset` バイト目に セットします。新規位置は、ファイルの先頭からのバイト数で 測られます。これは `whence` で指定した位置に `offset` を追加することにより得られます。

一般的に、ファイルの終端より先の位置に移動することも許されています。 そこにデータを書き込んだ場合、ファイルの終端からシーク位置までの範囲を読み込むと 値 0 が埋められたバイトを返します。しかし、ストリームの種類によっては この挙動をサポートしていないものもあります。 ストリームのもとになっているストレージが固定長である場合などです。

### パラメータ

`handle`

  fopen() を使用して作成したファイルシステムポインタリソース。

`offset`

  オフセット。

  ファイルの終端から数えた位置に移動するには、負の値を `offset` に渡して `whence` を `SEEK_END` に設定しなければなりません。

`whence`

  `whence` の値は以下のようになります。

  - `SEEK_SET` - 位置を `offset` バイト目に設定する
  - `SEEK_CUR` - 現在の位置に `offset` を加えた位置に設定する
  - `SEEK_END` - ファイル終端に `offset` を加えた位置に設定する

### 返り値

成功すると 0 を返し、そうでなければ -1 を返します。

### 例

例1 fseek() の例

`<?php
$fp = fopen('somefile.txt', 'r');
// データを読み込む
$data = fgets($fp, 4096);
// ファイルの先頭に移動する。
// rewind($fp); と等価。
fseek($fp, 0);
?>`

### 注意

> 注意:

> 追加モード (a あるいは a+) でファイルをオープンした場合、 ファイル位置によらず、ファイルに書き込むあらゆるデータが追加されます。また fseek() の結果は未定義となります。

> 注意:

> すべてのストリームがシーク処理に対応しているわけではありません。 シークに対応していないストリームで現在位置から前方へのシークを行うには、 データを読み込んでそれを捨てていくしかありません。それ以外のやり方は失敗します。

### 参考

- ftell() - ファイルの読み書き用ポインタの現在位置を返す
- rewind() - ファイルポインタの位置を先頭に戻す

fscanf
fstat
ファイルシステム 関数
PHP Manual