【PHP8.x】fgetc関数の使い方

作成日: 更新日:

fgetc関数は、指定されたファイルポインタから1文字を読み込む関数です。この関数は、開いているファイルからデータをバイト単位ではなく文字単位で処理したい場合に非常に役立ちます。例えば、テキストファイルを文字コードに関わらず確実に1文字ずつ読み込みたいときや、バイナリファイルをバイト単位で処理したい場合などに利用されます。

fgetc関数を実行すると、引数として渡されたファイルポインタが指す現在位置から1バイトを読み込み、その1バイトを文字列として返します。読み込みが成功すると、ファイルポインタは自動的に次の文字の先頭に移動します。これにより、繰り返しfgetc関数を呼び出すことで、ファイルの先頭から順に全文字を読み進めることが可能です。

戻り値としては、正常に1文字を読み込めた場合はその文字が1文字の文字列として返されます。しかし、ファイルの終端(EOF: End Of File)に達した場合や、ファイルの読み込み中に何らかのエラーが発生した場合には、ブール値のfalseが返されます。このため、関数の呼び出し元では、返された値がfalseではないことを厳密に確認し、正確な処理を行う必要があります。特にバイナリデータの場合、NULLバイト("\0")も有効な文字として返されるため、falseとの比較は型を考慮した厳密な比較(===)が推奨されます。エラーの詳細を確認するには、feof()ferror()といった関連関数と組み合わせて使用することをお勧めします。

基本的な使い方

構文(syntax)

<?php
$file = 'example.txt';
file_put_contents($file, 'ABCDE');

$handle = fopen($file, 'r');
if ($handle) {
    while (($char = fgetc($handle)) !== false) {
        echo $char . "\n";
    }
    fclose($handle);
}

unlink($file);
?>

引数(parameters)

resource $stream

  • resource $stream: 読み込み対象のファイルポインタ(リソース)を指定します。

戻り値(return)

string|false

ファイルポインタから1文字を読み込み、その文字を文字列として返します。ファイルの終端に達した場合やエラーが発生した場合はfalseを返します。