PHP入門 ファイルシステム関数 ファイルへの書き込み(fwrite関数)
開かれたファイル(ハンドル)に対して書き込みを行うのは、fwrite関数です。
構文:fwrite関数
fwrite(resource $handle, string $string [, int $length]):int
$handle | 書き込み対象のファイルハンドル |
$string | 書き込む文字列 |
$length | 書き込む文字列の長さ(バイト単位) |
fwrite関数には、エイリアス(別名)としてfputs関数もあります。
//書き込み内容を配列$dataにセット
$data[] = date('Y/m/d H:i:s');
$data[] = $_SERVER['SCRIPT_NAME'];
$data[] = $_SERVER['HTTP_USER_AGENT'];
//access.logを追記書き込みモードでオープン
$file = @fopen('access.log','a') or die('ファイルを開けませんでした');
//ファイルをロック
flock($file, LOCK_EX);
//ファイルの書き込み
fwrite($file, implode("\t", $data) . "\n");
アクセス日時、アクセスしたスクリプトのパス、クライアントの種類を配列に格納しておき、タブ(\t)区切りで連結したものをファイルに書き込んでいます。このように決まった区切り文字のテキストを生成するにはimplode関数を利用するのが便利です。行の終わりの改行文字(\n)は必ず指定します。