fopen()関数を使用して、マシン上にあるファイルを開くことができます。
<?php
$file = fopen( "c:\template\sample.txt", "r" );
fpassthru( $file );
?>
上記スクリプトでは、「fopen( "c:¥¥template¥¥sample.txt", "r" );」で指定したファイルを読込み専用で開き、「fpassthru( $file );」でブラウザに出力しています。また、ファイルがオープンに成功すると、注)「ファイルハンドル」が返されます。
fopen()関数の引数のmodeは、ファイルを開くタイプを指定します。
sample.txtを表示します。
ファイルに関する命令の時、どのファイルに対して実行するか指示をするために、実ファイル名に対して処理用の名前(ファイルハンドル)を付け、それ以降ではそのファイルハンドル名に対して処理を指示します。これにより、実ファイルが変更になっても修正個所が少しで済みます。
| モード | 説明 |
|---|---|
| a | 追記専用で開く(書き込みは末尾行から) |
| a+ | 追記および読み込みができる(書き込みは末尾から) |
| r | 読み込み専用で開く |
| r+ | 読み込みおよび書き込みができる(書き込みは先頭行から) |
| w | 書き込み専用で開く |
| w+ | 読み込みおよび書き込みができる(現在のファイルの内容はすべて消される) |
| x | 書き込みのみで開く。注)ファイルポインタをファイルの先頭に置き、ファイルがすでに存在する場にはfopen()は失敗し、E_WARNINGレベルのエラーを発行する。なお、ファイルが存在しない場合には新規作成を試みる。 |
| x+ | 書き込みおよび読み込みで開く。注)ファイルポインタをファイルの先頭に置き、ファイルがすでに存在する場にはfopen()は失敗し、E_WARNINGレベルのエラーを発行する。 |
ファイルの中で読み込みや書き込みを行う位置を表します。ファイルポイントが先頭で読み込みを開始すれば、ファイルの先頭から読み込みを行うことになります。先頭から書き込みを行うということは、既にファイルに何か書いてあっても、既存の内容を破棄してファイルの先頭から書き込みを行うことを意味します。また、ファイルポイントが最後とは、既存の内容の最後に追加として書き込みを行うことを意味します。
開いたファイルに対する操作を終えたら、fclose()関数を使ってファイルを閉じます。引数には、fopen()関数で取得したファイルハンドルを渡します。
fclose( filepointer );
<?php
$file = fopen( "c:\template\sample.txt", "r" );
fclose( $file );
?>
上記スクリプトに成功した場合ファイルが閉じられるので、ブラウザには何も出力されません。