ファイルのオープン
モード | 読み/書き | ポインタ |
r | 読み | 先頭 |
r+ | 読み/書き | 先頭 |
w | 書き | 先頭 |
w+ | 書き/読み | 先頭 |
a | 書き | 終端 |
a+ | 書き/読み | 終端 |
ファイルへの書き込み(追記)
<?php $file_name = "sample.txt"; //ファイルを追記モードで開く //die() は、message を出 力し、スクリプトの処理を終了する $file = fopen($file_name, "a") or die("OPENエラー $file_name"); //ファイルをロック(同時アクセスがないよう) flock($file,LOCK_EX); //文字列を準備(改行コード含む) $moji = "テスト文字\n"; //データを書き込む fputs($file,$moji); //ロック解除 flock($file,LOCK_UN); //ファイルを閉じる fclose($file); ?> |
<?php $file_name = "sample.txt"; //ファイルを上書きモードで開く $file = fopen($file_name, "w") or die("OPENエラー $file_name"); flock($file,LOCK_EX); //文字列を準備 $moji = "ABCEDFG"; //データを書き込む fputs($file,$moji); //ロック解除 flock($file,LOCK_UN); //ファイルを閉じる fclose($file); ?> |
上の項で書きんだファイル「sample.txt」の内容を表示します。(ファイルポインタが終端に達するまで)
fgets()関数は、ファイルから1行(改行文字まで)読み込みます。改行文字を検出できないときは、パラメータで指定した長さ-1バイトに達したときまで読み込まれます。
<?php $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルをロック flock($file,LOCK_EX); //ファイルのデータを表示する while (!feof($file)){ $moji = fgets($file, 1000); echo $moji."<br>"; } //ロック解除 flock($file,LOCK_UN); //ファイルを閉じる fclose($file); ?> |
次の例では、ファイルのデータを一度配列入れてから表示しています。
<?php $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルをロック flock($file,LOCK_EX); //ファイルのデータを配列に入れる //配列のデータを表示する //ロック解除 |
fgetc()関数を使って、指定されたファイルから1バイト読み込みます。ファイルポインタは後ろに移動します。
<?php $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルのデータを1バイト表示する //ファイルを閉じる |
fread()関数は、ファイルから指定バイト数だけを読み込みます。指定した文字数より小さい場合はファイル全体が表示されます。
<?php $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルのデータを4」 バイト表示する //ファイルを閉じる |
filesize()関数を使うと、ファイルサイズを調べてすべての内容を読み込むことができます。1つの変数にファイルの内容をすべて取り込むので、あまり大きなサイズには不向きです。
<?php $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルのデータをまとめて取得 //ファイルを閉じる |
<?php //カウンタファイル名 $cntfile = "count.txt"; //カウンタ桁数 $cnt_len = 5; //カウンタファイルが存在する場合はカウンタ値を読み取る } //ファイルをロック //カウンタ値を書き込む //ファイルロック解除 //ファイルを閉じる //カウンタ値を出力 |