fopen、fwrite、fprint、fread、fclose コマンドを使用して、ファイルを操作することができます。
ファイルの読み書きをする前に、fopen 関数を使用してファイルを開く必要があります。
fopen は 2 つの文字列を引数に持ちます。
「+」記号をモード文字に追加すると、読み込みと書き込みの両方の目的でファイルが開かれます。
この引数を省略すると、既定の読み込みモードになります。
fopen はファイル ハンドルを返します。ファイル ハンドルは開いているファイルを表します。fprint などの他のコマンドを使用して開いているファイルを操作できるように、この値を変数に保存する必要があります。
$fileId = fopen($exampleFileName,"r");
読み込む目的でファイルを開くと、次のコマンドのいずれかを使用してファイルのデータを実際に読むことができます。
目的 | 使用するコマンド |
---|---|
行を読み込む(次の改行まで読み込む) |
fgetline (ファイル ID) |
単語を読み込む(次の空白まで読み込む) |
fgetword (ファイル ID) |
1 つの値を読み込む |
fread (ファイル ID、型) |
例:
// Read a file one line at a time $fileId=fopen($exampleFileName,"r"); string $nextLine = `fgetline $fileId`; while ( size( $nextLine ) > 0 ) { print ( $nextLine ); $nextLine = `fgetline $fileId`; }
feof <fileID> 関数は、ファイルの終わりに達すると 0 以外の値を返します。
string $nextWord = `fgetword $fileId`; while ( !feof($fileId) ) { print ( $nextWord + "\n" ); $nextWord = fgetword($fileId); }
空のファイルを開いた場合は、ファイルの読み込みが少なくとも 1 回実行されるまで、ファイルの終わりに到達したことは検知されません。
書き込みや追加の目的でファイルを開くと、次のコマンドのいずれかを使用してファイルに対して実際にデータの書き込みを行うことができます。
例:
$fileId = fopen($exampleFileName,"w"); fprint($fileId,"Hello there\n"); fclose($fileId);
fwrite コマンドは、データの引数をバイナリ形式でファイルに書き込みます。このコマンドが書き込む文字列は、NULL 文字で終わる ASCII 文字です。末尾に NULL 文字が必要な場合以外は、テキスト ファイルや raw バイトの書き込みに fwrite を使用しないでください。
ファイルを閉じずに書き込みバッファをクリアするには、fflush (ファイル ID)を使用します。
ファイル位置ポインタをファイルの始めにリセットするには、frewind (ファイル ID)を使用します。
開いたファイルを閉じるには、fclose (ファイル ID)を使用します。