関数・クラス解説

file_put_contents

version:PHP 5, PHP 7 (公式)

データをファイルに書き込む

公式リファレンス

書式

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int

説明

この関数は、fopen()、fwrite()、 fclose() を続けてコールしてデータをファイルに書き込むのと等価です。

filename が存在しない場合はファイルを作成します。 存在する場合はそのファイルを上書きします。ただし FILE_APPEND フラグが設定されている場合は別です。

パラメータ

filename
データを書き込むファイルへのパス。
data
書き込むデータ。文字列, 配列 もしくは ストリーム リソースのいずれかを指定可能です。 data が ストリーム リソースの場合は、 ストリームのバッファに残っている内容が指定したファイルにコピーされます。 これは、stream_copy_to_stream() の挙動と似ています。 data に一次元の配列を指定することもできます。この場合は file_put_contents($filename, implode('', $array)) と同じ意味になります。
flags
flags の値は、以下のフラグを組み合わせたものとなります 組み合わせる際には、論理 OR (|) 演算子で連結します。
使用できるフラグ
フラグ 説明
FILE_USE_INCLUDE_PATH filename をインクルードディレクトリから探します。 詳細な情報は include_path を参照ください。
FILE_APPEND filename がすでに存在する場合に、 データをファイルに上書きするするのではなく追記します。
LOCK_EX 書き込み処理中に、ファイルに対する排他ロックを確保します。 つまり、fopen() の呼び出しから fwrite() の呼び出しまでの間に flock() の呼び出しが発生するということです。 これは、モード "x" で fopen() を呼び出すことと同等ではありません。
context
stream_context_create() で作成したコンテキストリソース。

返値

この関数はファイルに書き込まれたバイト数を返します。 あるいは失敗した場合には FALSE を返します。 警告この関数は論理値FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。詳細については 論理値のセクションを参照してください。この関数の返り値を調べるには===演算子 を使用してください。

注意

注意: この関数はバイナリデータに対応しています。
ヒントfopen wrappers が有効の場合、この関数のファイル名としてURL を使用することができます。ファイル名の指定方法に関する詳細はfopen() を参照ください。サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、提供される定義済み変数などの情報がまとめられています。警告この関数は論理値FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。詳細については 論理値のセクションを参照してください。この関数の返り値を調べるには===演算子 を使用してください。

サンプル

例1 シンプルな使用例

$file = 'people.txt'; // ファイルをオープンして既存のコンテンツを取得します $current = file_get_contents($file); // 新しい人物をファイルに追加します $current .= "John Smith\n"; // 結果をファイルに書き出します file_put_contents($file, $current);

例2 フラグの使用

$file = 'people.txt'; // 新しい人物をファイルに追加します $person = "John Smith\n"; // 中身をファイルに書き出します。 // FILE_APPEND フラグはファイルの最後に追記することを表し、 // LOCK_EX フラグは他の人が同時にファイルに書き込めないことを表します。 file_put_contents($file, $person, FILE_APPEND | LOCK_EX);

参考

  • fopen() - ファイルまたは URL をオープンする
  • fwrite() - バイナリセーフなファイル書き込み処理
  • file_get_contents() - ファイルの内容を全て文字列に読み込む
  • stream_context_create() - ストリームコンテキストを作成する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール