今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 簡単なPHPスクリプトを動かしてみよう
  3. ファイルから1行ずつ読み込む - fgets()
  4. ユニークなファイル名の一時ファイルを作成 - tempnam()
  5. ヒアドキュメント

文字列をファイルに書き込む - 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)にデータが書き込まれます。

フラグを使ってみた!
フラグを使ってみた!
フラグを使ってみた!
フラグを使ってみた!

ファイル の人気記事

  1. ファイルから1行ずつ読み込む - fgets()
  2. ファイル名を変更 - ファイルを移動 - rename()
  3. 文字列にファイルを書き込む - fwrite()、fputs()
  4. 親ディレクトリのパスを表示 - dirname()
  5. ディレクトリを作成 - mkdir()
  6. ユニークなファイル名の一時ファイルを作成 - tempnam()
  7. 相対パスから絶対パスを取得 - realpath()
  8. バイナリセーフにファイルを読み込む - fread()

関連記事(一部広告含む)