file_puts_contents関数を理解する!PHPでファイルの書き込みを行う方法【初心者向け】

プログラミング初心者向けにPHPでfile_puts_contens()を使ってファイルの書き込むを行う方法について解説しています。データベースだけでなく、テキストファイルにもデータを書き込むことができるので、ぜひ覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

この記事ではPHPによるファイル書き込みについて説明していきます。

PHPのデータは、データベースだけでなく、テキストファイルに書き込むこともできるので、ぜひ書き方を覚えておきましょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

ファイルの書き込みとは

プログラムを作成するにあたり、キーボードやディスプレイから入出力することをしてきたと思います。

しかし、プログラムから出力されるデータはディスプレイだけではなく、外部ファイルへの書き込みもできるのです。

ここではファイルへの書き込みについて実際にプログラムを書いて説明していきます。

 

大石ゆかり

PHPでファイルを作成したり、書きこんだり出来るんですね。

田島悠介

手動だと、テキストエディタを開く→内容を書く→保存するだよね。それをプログラムで処理できるんだよ。

大石ゆかり

後で使うデータや、重要なデータは保存して置きたいので便利ですね。

田島悠介

そうだね。では、ファイルの書き込みに使う関数を見てみよう!

 

ファイル書き込みの書き方

ファイル全体に書き込む

数値 = file_put_contents(ファイル名,文字列)

 

開いているファイルへ書き込む

文字列 = fwrite(ハンドル)

ハンドルとはファイルを開いて処理するときの管理用のもので、ファイルの位置などを指し示すものです。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

file_put_contents

<?php
  define("TESTFILE","./TEST.txt");
  $s = "上書き";
  print_r("file_put_tcontents関数\n");
  file_put_contents(TESTFILE,$s);
  var_dump(file_get_contents(TESTFILE));
?>

 

実行結果

$ php 01.php
file_put_tcontents関数
string(9) "上書き"

 

fwrite

<?php
  define("TESTFILE","./TEST.txt");
  $fh = fopen(TESTFILE, "w");

  echo "fwrite関数\n";
  fwrite($fh,"書き込み");
  fclose($fh);

  var_dump(file_get_contents(TESTFILE));
?>

 

実行結果

$ php fwrite.php
fwrite関数
string(12) "書き込み"

 

おわりに

ファイルの書き込みを実行できるようになるとプログラムを終了してもデータを保持することができます。

基本的ですが、とても重宝する機能なのでしっかりとマスターしましょう。

 

大石ゆかり

file_put_contents関数は1行でファイルに書き込めていますね。

田島悠介

fwriteだと、ファイルを開くモードを指定してファイルを開き、ファイルハンドルを取得してから書き込まなければならないんだよ。

大石ゆかり

ちょっと面倒ですね。

田島悠介

そうだね。ファイルに書き込むのは簡単だけど、PHPの場合、ウェブで複数人で使用する場合が多いよね。そうなるとファイルロックが必要になるんだよ。そこで違って来たりするんだよね。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。