[PHP-users 6096] Re: 行の先頭への移動について
加藤昌也
php-users@php.gr.jp
Tue, 12 Mar 2002 11:34:47 +0900
加藤です。
On Tue, 12 Mar 2002 10:03:10 +0900
Jun <tec@j-style.info> wrote:
> 実は、ファイルの×行目だけを取得したいと思っている
> のですが、×行という指定はどのようにしたら良いので
> しょうか?
[snip]
> ------------------------------
> $fp = @fopen("test.txt", "r");
> flock($fp,LOCK_SH);
> rewind($fp);
> fseek($fp,12);
> $buf = fgets($fp,1000000);
> rewind($fp);
> flock($fp, LOCK_UN);
> fclose($fp);
> ------------------------------
単純にfgetsを繰り返し利用するだけで良いのでは?。
今回のように比較的ファイルの前の方でよければ
$fp = fopen("hogehoge.txt", "r");
$buf = fgets($fp);
$buf = fgets($fp);
$buf = fgets($fp);
fclose($fp);
と、欲しい行までfgetsを続けて書いてもよいでしょうし、
$fp = fopen("hogehoge.txt", "r");
for($i = 0; $i < 3; $i++)
$buf = fgets($fp);
fclose($fp);
とループをつかってもよいです。
実際に使う場合にはこんなに単純ではなくって、
間違ったファイルが指定されていて、バイナリファイル
だったとか、2行しかないファイルだっとかいう場合
にどうするか?といったエラー処理を考えないといけない
ですけどね。
----
加藤昌也 株式会社ニルソフトウェア
E-mail kato@nil.co.jp
TEL 03-3749-8601
FAX 03-3749-8602