PHP Conference Nagoya 2025

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::key行番号を取得する

説明

public SplFileObject::key(): int

現在の行番号を取得します。

注意:

固定長のファイルを読み込むのに SplFileObject::setMaxLineLen() が使われている場合 この数はファイルの実際の行番号を反映しない可能性があります。

パラメータ

この関数にはパラメータはありません。

戻り値

現在の行番号を返します。

例1 SplFileObject::key() の例

<?php
$file
= new SplFileObject("lipsum.txt");
foreach (
$file as $line) {
echo
$file->key() . ". " . $line;
}
?>

上の例の出力は、 たとえば以下のようになります。

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
1. Duis nec sapien felis, ac sodales nisl. 
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

例2 SplFileObject::setMaxLineLen() による SplFileObject::key() の例

<?php
$file
= new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach (
$file as $line) {
echo
$file->key() . ". " . $line . "\n";
}
?>

上の例の出力は、 たとえば以下のようになります。

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit. 
3. 

4. Duis nec sapien fel
5. is, ac sodales nisl
6. . 

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

参考

add a note

User Contributed Notes 1 note

up
2
xzero at elite7hackers dot net
4 years ago
Another gotcha that is not mentioned: If you have flag SKIP_EMPTY set, then key() will not reflect actual line numbers as empty lines are not accounted.
To Top