php file_put_contentsでファイルに書き込みを行う

phpで、file_put_contentsを使用して、ファイルに書き込みを行うサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Stream release 8
- php 8.0.0
- nginx 1.14.1
file_put_contents使い方
file_put_contentsを使用すれば、ファイルに書き込みを行うことが可能です。
この関数は、fopen(),fwrite(),fclose()と同じ動作をします。
file_put_contents("ファイル名", "書き込むデータ" [, フラグ] [, 独自コンテキスト] )
// 書き込んだバイト数が返ります。
// 書き込みに失敗時は falseが返ります。
フラグ一覧
・FILE_USE_INCLUDE_PATH : インクルードパス使用
・FILE_APPEND : 追加モードで書き込み
・LOCK_EX : ファイルをロックする
以下は、「hoge.txt」に「hogehoge」と書き込みを行って、表示するサンプルコードとなります。
<?php
$filename = 'hoge.txt';
// ファイルに書き込む
file_put_contents($filename, 'hogehoge');
// ファイル内容を確認する
readfile($filename);
// hogehoge
上記で書き込みを行ったファイルに追記モードで書き込むと、既存の内容に追記されます。
<?php
$filename = 'hoge.txt';
// ファイルにt追記モードで書き込む ロックモードを併用
file_put_contents($filename, 'hogehoge', FILE_APPEND | LOCK_EX);
// ファイル内容を確認する
readfile($filename);
// hogehogehogehoge
また、ファイルが存在しない場合は、作成されます。
<?php
$filename = 'hoge2.txt';
// ファイルに書き込む
file_put_contents($filename, 'hogehoge');
// ファイル内容を確認する
readfile($filename);
// hogehoge
fwrite
fwriteを使用しても、ファイルへの書き込みは可能です。
<?php
$filename = 'hoge.txt';
// fopenでファイルを開く('w'は上書きモード)
$fp = fopen($filename, 'w');
// fwriteで書き込む
fwrite($fp, 'hogehoge');
// ファイルを閉じる
fclose($fp);
// ファイルの内容を確認
readfile($filename);
// hogehoge
fopenのmode一覧
mode | ポインタ の位置 | 処理 |
---|---|---|
r | 先頭 | 読み込みのみ |
r+ | 先頭 | 読み込み書き出し |
w | 先頭 | 書き出しのみ ファイルがなければ作成して、新規書き込み |
w+ | 先頭 | 読み込み・書き出し ファイルがなければ作成して、新規書き込み |
a | 終端 | 書き出しのみ ファイルがなければ作成して、追加書き込み |
a+ | 終端 | 読み込み・書き出し ファイルがなければ作成して、追加書き込み |
x | 先頭 | 書き込みのみ ファイル存在時はエラー |
x+ | 先頭 | 読み込み・書き出し ファイル存在時はエラー |
c | 先頭 | 書き込みのみ ファイルがなければ作成して、ファイルは排他的ロック |
c+ | 先頭 | 読み込み・書き出し ファイルがなければ作成して、ファイルは排他的ロック |
パフォーマンスは、file_put_contentsの方が少しだけ良さそうです。
【参考】 file_put_contentsとfwrite(wモード)で、それぞれ同じ内容の書き込み処理を10万回実行した結果
測定結果 : file_put_contents
process time: 127.43767 ミリ秒
測定結果 : fwrite
process time: 129.09895 ミリ秒
-
前の記事
MySQL テーブルからcreate文を作成する 2021.12.18
-
次の記事
C# numericUpDownのテキストの色を変更する 2021.12.18
コメントを書く