(PHP 5)
file_put_contents — 文字列をファイルに書き込む
この関数は、fopen()、fwrite()、 fclose() を続けてコールしてデータをファイルに書き込むのと等価です。
filename が存在しない場合はファイルを作成します。 存在する場合はそのファイルを上書きします。ただし FILE_APPEND フラグが設定されている場合は別です。
データを書き込むファイルへのパス。
書き込むデータ。文字列, 配列 もしくは ストリーム リソースのいずれかを指定可能です。
data が ストリーム リソースの場合は、 ストリームのバッファに残っている内容が指定したファイルにコピーされます。 これは、stream_copy_to_stream() の挙動と似ています。
data に一次元の配列を指定することもできます。この場合は file_put_contents($filename, implode('', $array)) と同じ意味になります。
flags の値は、以下のフラグを組み合わせたものとなります (組み合わせ方には多少制限があります)。組み合わせる際には、論理 OR (|) 演算子で連結します。
フラグ | 説明 |
---|---|
FILE_USE_INCLUDE_PATH | filename をインクルードディレクトリから探します。 詳細な情報は include_path を参照ください。 |
FILE_APPEND | filename がすでに存在する場合に、 データをファイルに上書きするするのではなく追記します。 追記はアトミックに行われるためロックは不要なので、 LOCK_EX と同時には使用できません。 |
LOCK_EX | 書き込み処理中に、ファイルに対する排他ロックを確保します。 FILE_APPEND と同時には使用できません。 |
FILE_TEXT | data をテキストモードで書き込みます。 unicode が有効な場合、デフォルトのエンコーディングは UTF-8 です。 別のエンコーディングを指定するには、 独自のコンテキストを作成するか、あるいは stream_default_encoding() でデフォルトを変更します。 このフラグは FILE_BINARY と同時に使用することはできません。 このフラグは PHP 6 以降でのみ使用可能です。 |
FILE_BINARY | data をバイナリモードで書き込みます。これはデフォルトの設定で、 FILE_TEXT と同時に使用することはできません。 このフラグは PHP 6 以降でのみ使用可能です。 |
stream_context_create() で作成したコンテキストリソース。
この関数はファイルに書き込まれたバイト数を返します。 あるいは失敗した場合には FALSE を返します。
例1 シンプルな使用例
<?php
$file = 'people.txt';
// ファイルをオープンして既存のコンテンツを取得します
$current = file_get_contents($file);
// 新しい人物をファイルに追加します
$current .= "John Smith\n";
// 結果をファイルに書き出します
file_put_contents($file, $current);
?>
例2 フラグの使用
<?php
$file = 'people.txt';
// 新しい人物をファイルに追加します
$person = "John Smith\n";
// $person の中身を $file というファイルに追記します
file_put_contents($file, $person, FILE_APPEND);
?>
バージョン | 説明 |
---|---|
5.0.0 | コンテキストがサポートされるようになりました。 |
5.1.0 | LOCK_EX のサポートが追加され、 data パラメータにストリームリソースを指定することが可能になりました。 |
6.0.0 | FILE_TEXT および FILE_BINARY がサポートされるようになりました。 |
注意: この関数はバイナリデータに対応しています。
fopen wrappers が有効の場合、この関数のファイル名として URL を使用することができます。ファイル名の指定方法に関する詳細は fopen() を参照ください。 サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、 提供される定義済み変数などの情報がまとめられています。