カテゴリ: PHP 更新日: 2025/11/30

PHP の file_put_contents() を使ったファイル書き込みについて初心者向けに解説!

PHP の file_put_contents() を使ったファイル書き込み
PHP の file_put_contents() を使ったファイル書き込み

新人と先輩の会話形式で理解しよう

新人

「PHPでファイルにデータを書き込む方法ってありますか?」

先輩

「PHPには、file_put_contents()という関数を使うと、簡単にファイルにデータを書き込むことができるんですよ。」

新人

「それは便利ですね!具体的にはどのように使うんですか?」

先輩

「では、基本的な使い方を見ていきましょう!」

-

1. file_put_contents()とは?

1. file_put_contents()とは?
1. file_put_contents()とは?

file_put_contents()は、指定したファイルにデータを簡単に書き込むことができるPHPの関数です。指定したファイルが存在しない場合には、新しくファイルを作成することもできます。

例えば、テキストファイルにデータを追加したり、上書きしたりする時に非常に便利です。

2. file_put_contents()を使う理由(簡単にファイルを書き込む方法)

2. file_put_contents()を使う理由(簡単にファイルを書き込む方法)
2. file_put_contents()を使う理由(簡単にファイルを書き込む方法)

ファイルにデータを書き込む方法にはいくつかの手段がありますが、file_put_contents()は非常に簡単に使うことができ、コードもシンプルで済むため、特に初心者におすすめです。

例えば、以下のように1行でファイルに文字列を保存できます。


file_put_contents('example.txt', 'Hello, World!');

このコードでは、example.txtというファイルに「Hello, World!」という文字列が書き込まれます。もしそのファイルが存在しない場合は、新たに作成されます。

3. file_put_contents()を使ったファイルへの書き込み例(簡単なコードを使って)

3. file_put_contents()を使ったファイルへの書き込み例(簡単なコードを使って)
3. file_put_contents()を使ったファイルへの書き込み例(簡単なコードを使って)

ここでは、実際にファイルにデータを書き込む方法を見てみましょう。

例えば、sample.txtというファイルに「こんにちは、PHP!」というテキストを書き込む場合、次のように記述します。


file_put_contents('sample.txt', 'こんにちは、PHP!');

このコードでは、sample.txtというファイルに「こんにちは、PHP!」という文字列を一行で書き込みます。ファイルがすでに存在する場合は、その内容が上書きされます。

もしファイルにデータを追加したい場合は、file_put_contents()の第3引数にFILE_APPENDを指定することで、既存の内容を残したままデータを追記できます。


file_put_contents('sample.txt', '新しい内容を追加します。', FILE_APPEND);

このコードでは、sample.txtファイルの最後に「新しい内容を追加します。」という文字列が追記されます。

4. 書き込んだデータを表示する方法

4. 書き込んだデータを表示する方法
4. 書き込んだデータを表示する方法

ファイルにデータを書き込んだ後、その内容を表示したい場合は、次のようにファイルを読み込んで表示できます。

以下のコードでは、sample.txtというファイルから内容を読み込んで、その内容を画面に表示します。


$file_contents = file_get_contents('sample.txt');
echo nl2br($file_contents); // 改行を保持して表示

file_get_contents()関数でファイルの内容を読み込み、nl2br()関数で改行をHTMLの改行タグに変換しています。これにより、改行がそのまま表示されます。

-

5. file_put_contents()のエラーハンドリング(注意点)

5. file_put_contents()のエラーハンドリング(注意点)
5. file_put_contents()のエラーハンドリング(注意点)

file_put_contents()を使ってファイルを書き込む際に、いくつかの注意点があります。

  • ファイルが書き込み可能か確認する:書き込み先のファイルが書き込み可能な状態であるかを確認してください。例えば、ファイルのパーミッション設定を確認する必要があります。
  • エラー処理を行う:ファイル書き込みが失敗した場合、file_put_contents()falseを返します。エラーが発生した場合に備えて、エラーチェックを行うことが重要です。

次のコード例では、ファイルへの書き込みに失敗した場合にエラーメッセージを表示する方法を示します。


$result = file_put_contents('sample.txt', 'データを書き込みます。');
if ($result === false) {
    echo 'ファイルの書き込みに失敗しました。';
} else {
    echo 'データの書き込みが成功しました。';
}

このコードでは、file_put_contents()が成功した場合に書き込み成功のメッセージが表示され、失敗した場合はエラーメッセージが表示されます。

6. file_put_contents()を使う際の注意点(ファイルの上書きなど)

6. file_put_contents()を使う際の注意点(ファイルの上書きなど)
6. file_put_contents()を使う際の注意点(ファイルの上書きなど)

file_put_contents()は非常に便利な関数ですが、使用時にはいくつか注意すべき点があります。

  • ファイルの上書き:ファイルが既に存在する場合、file_put_contents()を使うとそのファイルの内容が上書きされます。もし元の内容を残したまま新しい内容を追加したい場合は、第3引数にFILE_APPENDを指定する必要があります。
  • ファイルのパーミッション:書き込みを行うファイルが書き込み可能であることを確認してください。適切なパーミッションが設定されていない場合、書き込みは失敗します。
  • ファイルパスの指定:指定したファイルパスが正しいかを確認してください。間違ったパスを指定するとファイルが作成されないか、エラーが発生します。

ファイルの書き込み前に、これらの点を確認することで、よりスムーズに処理を行うことができます。

7. file_put_contents()と他のファイル書き込み方法(例えばfwrite()との違い)

7. file_put_contents()と他のファイル書き込み方法(例えばfwrite()との違い)
7. file_put_contents()と他のファイル書き込み方法(例えばfwrite()との違い)

file_put_contents()以外にも、PHPにはファイル書き込みを行う方法があります。fwrite()はその一例で、より細かい制御が可能です。

file_put_contents()は、簡単に1行でファイルの内容を書き込むことができますが、fwrite()はファイルを開き、書き込む処理を行います。ファイルのポインタを管理したり、書き込む内容を少しずつ処理する場合に便利です。

以下は、fwrite()を使った例です。


$file = fopen('sample.txt', 'w');
if ($file) {
    fwrite($file, 'このデータはfwrite()で書き込まれました。');
    fclose($file);
} else {
    echo 'ファイルを開けませんでした。';
}

この例では、まずfopen()でファイルを開き、fwrite()でデータを書き込んでいます。最後にfclose()でファイルを閉じます。

file_put_contents()と比較すると、fwrite()の方がやや複雑ですが、ファイルの内容をより細かく制御したい場合に有用です。

8. 実践!簡単なファイル書き込みを使ったアプリケーションの例

8. 実践!簡単なファイル書き込みを使ったアプリケーションの例
8. 実践!簡単なファイル書き込みを使ったアプリケーションの例

ここでは、PHPを使って簡単なファイル書き込み機能を持ったアプリケーションを作成してみましょう。ユーザーがフォームに入力した内容をファイルに書き込む簡単なプログラムを作ります。

まず、ユーザーが入力するフォームを作成します。


<form action="write_file.php" method="post">
    <label for="text">テキストを入力:</label>
    <textarea id="text" name="text"></textarea><br>
    <input type="submit" value="送信">
</form>

このフォームでは、ユーザーがテキストを入力し、「送信」ボタンをクリックすると、PHPのスクリプトが実行されます。

次に、送信されたデータをファイルに書き込むPHPスクリプトを作成します。


if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['text'])) {
    $text = $_POST['text'];
    $file_path = 'user_input.txt';
    file_put_contents($file_path, $text, FILE_APPEND);
    echo '入力されたテキストがファイルに書き込まれました。';
}

このコードでは、フォームから送信されたテキストデータをuser_input.txtというファイルに追記しています。FILE_APPENDを使用して、ファイルの末尾に新しいテキストを追加しています。

これにより、ユーザーが入力したテキストがファイルに保存され、後から確認することができます。

まとめ

まとめ
まとめ

ここまでPHPのfile_put_contents()を中心に、ファイルへ書き込む処理の基本から応用、そして実際のアプリケーションで役立つ使い方まで順を追って確認してきました。日々の開発の中で、ユーザーが入力したデータを扱ったり、ログを保存したり、設定情報をファイルとして保持したりする場面は決して少なくありません。そうしたときに、シンプルで扱いやすいfile_put_contents()を使いこなせることは、初心者にとって大きな強みになります。また、ファイルという仕組みそのものがどのように動いているのかを理解しておくと、コード全体の見通しもよくなり、エラーに直面したときの対応も落ち着いて行えるようになります。とくにファイルパスの扱い方やパーミッションの考え方は、PHPに限らず他の言語でも通じる大切な基礎知識といえます。 ファイルの書き込み処理は一見すると単純に思えるかもしれませんが、実際には意図しない上書きが起きたり、サーバーの権限設定によって書き込みに失敗したり、データの追記と上書きを使い分ける必要があったりと、注意すべき点が多く存在します。こうした一つ一つの動作を丁寧に理解していくことで、安全で扱いやすいアプリケーションを作れるようになります。今回学んだfile_put_contents()は、その入り口として最適な関数であり、これからさらに複雑な処理を学ぶときにも確かな基盤として役立ちます。 実務では、ログの記録やユーザーの投稿履歴の保存、バックアップ用データの生成など、ファイル操作は確実に必要となる技術です。そのため、初心者の段階で「どういうときに使うのか」「どういう仕組みで動いているのか」「どこでつまずきやすいのか」を一通り押さえておくことは大きな意味があります。特にfile_put_contents()の第3引数で指定できるFILE_APPENDやLOCK_EXなどのオプションは、規模の大小に関わらず役立つ知識であり、理解しておくと実践の場での判断がしやすくなります。ファイルへの同時書き込みの安全性を高めたい場合や、追記のみに限定したい場合など、状況に応じて柔軟に使い分けられるようになることが理想です。 また、今回の記事では初心者にも扱いやすい例を中心に解説してきましたが、file_put_contents()は文字列だけでなく配列を連結したり、JSON形式に変換したデータを保存したり、ログファイルに時刻情報を付けて追記するなど、応用の幅が非常に広い関数です。たとえばユーザーからの問い合わせ内容をファイルに記録するフォームアプリケーション、日付ごとにログを切り替える処理、設定ファイルを自動生成するスクリプトなど、実務でそのまま使える場面がたくさんあります。こうした応用例を自分で試しながら理解を深めていくことで、さらに開発の引き出しが増えていきます。 以下に、今回の学習の中で重要となるポイントを踏まえたサンプルをもう一つ紹介します。ファイルへの書き込みと読み込みを組み合わせた、初歩的ながら実務に近い処理です。フォームから送信されたデータを安全に保存し、保存後に内容を表示するという流れは、小さなアプリケーションでも非常に役立つ考え方です。

書き込みと読み込みを組み合わせたサンプルコード


<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $text = trim($_POST['text']);
    $file = 'log.txt';
    $entry = date('Y-m-d H:i:s') . " - " . $text . PHP_EOL;

    file_put_contents($file, $entry, FILE_APPEND | LOCK_EX);
}

$logs = '';
if (file_exists('log.txt')) {
    $logs = nl2br(file_get_contents('log.txt'));
}
?>
<form method="post">
    <textarea name="text"></textarea>
    <button type="submit">送信</button>
</form>
<div><?php echo $logs; ?></div>

この例では、ユーザーが入力した内容に日時を付けて追記することで、簡易的なログシステムとして動作します。FILE_APPENDとLOCK_EXを組み合わせることで、追加書き込みと同時にファイルのロックを行い、複数のアクセスが同時に行われた場合の安全性も考慮しています。こうした細かな工夫を積み重ねることが実践的なコードを書くうえで欠かせず、PHPでの開発スキルを高める重要なポイントになります。 ここまで学んできたfile_put_contents()の使い方は、すべてPHPを扱ううえで避けて通れない基本知識です。テキストベースのデータであっても、扱い方を理解しているかどうかでコードの整合性や安全性は大きく変わってきます。初心者のうちはとくに、動かして試しながら知識を定着させていくのが効果的です。実際に手を動かし、動作を確認しながら次のステップへ進んでいきましょう。

先生と生徒の振り返り会話

生徒

「file_put_contents()って思ったより奥深いんですね。最初はただ書き込むだけの関数だと思っていましたが、追記やロックの仕組みまで理解すると、実務でも役立つ理由がよくわかりました。」

先生

「そうなんだ。シンプルだからこそ、場面に応じた使い方を知っておくと力を発揮するよ。ログや設定ファイルの保存など、実際の現場でも頻繁に使われるからね。」

生徒

「FILE_APPENDやLOCK_EXの意味も理解できました。安全に書き込むための工夫が大事なんですね。」

先生

「その通り。ファイル操作は正確さと安全性がすごく重要だから、小さな工夫が結果的に大きな差になるんだよ。」

生徒

「今回の内容を踏まえて、いろいろなファイル保存アプリを作ってみたくなりました!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPのfile_put_contents()って何ですか?

PHPのfile_put_contents()は、指定したファイルにデータを書き込むことができる関数です。初心者でも簡単にファイルを作成したり文字列を保存でき、上書きや追記も可能です。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.3
Java&Spring記事人気No3
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.4
Java&Spring記事人気No4
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
No.5
Java&Spring記事人気No5
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.6
Java&Spring記事人気No6
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.7
Java&Spring記事人気No7
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
No.8
Java&Spring記事人気No8
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
-
-