文字列をファイルに書き込む - file_put_contents()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、文字列をファイルに書き込む関数 file_put_contents()を紹介します。
file_put_contents関数
int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) 文字列をファイルに書き込みます。 ファイルがない場合は新規に作成します。
引数 $filename 文字列データを書き込むファイル名を指定します。 $data ファイルに書き込むデータを指定します。 文字列や配列が指定可能です。 $flags フラグを指定します。フラグは以下の3つです。 ・FILE_USE_INCLUDE_PATH → インクルードパスを使用 ・FILE_APPEND → ファイルを追記モードで開く ・LOCK_EX → 書き込み中にファイルをロック 複数のフラグを指定する場合は論理演算子OR( | )を使います。 $context 独自のコンテキストを使用する場合に指定します。
返り値 ファイルに書き込むまれたバイト数をint型で返します。 書き込みに失敗した場合には、falseを返します。
サンプルコード
指定したデータを指定したファイル(out.txt)へ書き込むサンプルコードです。
file_put_contents( ファイル, 書き込むデータ )
<?php $file = "out.txt"; $string = "Hello, PHP"; var_dump( file_put_contents($file, $string) ); ?>
実行結果です。ファイルへ書き込まれたバイト数が返されます。
int(10)
ファイル(out.txt)には、指定したデータが適切に書き込まれています。
Hello, PHP
サンプルコード - フラグを指定
指定したデータを指定したファイル(out-flag.txt)へ書き込むサンプルコードです。追記フラグ「FILE_APPEND」とファイルロックフラグ「LOCK_EX」を指定しています。
file_put_contents( ファイル, 書き込むデータ, フラグ )
<?php $file = "out-flag.txt"; $string = "フラグを使ってみた!\n"; var_dump( file_put_contents($file, $string, FILE_APPEND | LOCK_EX) ); ?>
実行結果です。フラグを指定しているので、ファイル書き込み中にファイルはロックされ、追記モードでファイルが書き込まれます。また、書き込まれたバイト数が返されます。
int(31)
追記モードなので、プログラムを実行した回数分、ファイル(out-flag.txt)にデータが書き込まれます。
フラグを使ってみた! フラグを使ってみた! フラグを使ってみた! フラグを使ってみた!