・file_put_contentsやfopenなどの使い方を知りたい・・・。
・また、ファイルの読み込み方も教えて欲しい!
PHPでは、file_put_contentsやfopenなどを使って、テキストファイル(txt)に書き込みを行うことができますが、やり方を知らない人も多いでしょう。
そこでこの記事では、PHPでファイルに書き込みをする方法について詳しく解説していきます!
この記事を読めば、PHPでファイルに書き込みをする方法がわかり、さらにその書き込んだものを読み込むこともできるようになります。
PHPでファイルの書き込み方がわからない、file_put_contentsとかfopenなどの使い方をよく理解していない人は、ぜひ最後までご覧ください。
目次
file_put_contentsでファイルに書き込みをする方法
PHPでファイルの書き込みができる関数でfile_put_contentsというものがあります。
ここでは、このfile_put_contentsについて学んでいきましょう。
file_put_contentsとは?
file_put_contentsとは、データをファイルに書き込むことができる関数です。
1 |
file_put_contents(ファイル名, データ, フラグ, コンテキスト) |
file_put_contentsは、上記のように第1引数から第4引数まで指定することができます。
第1引数のファイル名は、書き込みたいファイル名を指定します。
もし、指定したファイル名が存在しない場合は、新規でファイルが作成され、存在する場合はデータを上書きされます。
ただし、第3引数のフラグでFILE_APPENDを指定されている場合は上書きされるのではなく、追加されます。
※今回は、第2引数まで指定する基本的な使い方を解説していきます。
file_put_contentsの使い方
それでは、実際にfile_put_contentsの使い方を見ていきましょう。
コードの書き方は以下の通り。
1 2 3 |
<?php file_put_contents('./test.txt', 'こんにちは'); ?> |
file_put_contentsの第1引数には、ファイル名の「./test.txt」を指定します。
「./」はこのコードを書いているファイルと同じ階層を表しています。
そして、第2引数には、書き込みたいデータとして「こんにちは」という文字列を指定します。
コードを更新すると、このコードが書かれているファイルと同じ階層に「test.txt」というテキストファイルが作成されました。
このファイルの中身を確認すると、「こんにちは」という文字列が書き込まれていますね。
1 2 |
//実行結果 こんにちは |
このように、file_put_contentsはファイル名と書き込みたいデータを指定するだけで、簡単にファイルに書き込みをすることができます。
他にもデータを指定して、書き込みをしてみるといいでしょう。
fopen関数からファイルに書き込みをする方法
PHPでは、file_put_contentsの他に、fopen関数を使ってファイルに書き込みをすることもできます。
なので、ここではfopen関数の使い方について学んでいきましょう。
fopen関数とは?
fopen関数とは、ファイルやURLなどを開いてくれる関数です。
fwrite関数でファイルに書き込みを行う場合、まずファイルを開く必要があります。
そんなときにfopen関数を使えば、ファイルを開いてくれて、書き込みを行うことができるということです。
1 |
fopen(開きたいファイル名, オープンモード) |
fopen関数では、第1引数に開きたいファイル名を、第2引数にオープンモードを指定することで、ファイルを開きます。
第2引数のオープンモードというのは、開いたファイルに書き込みを行うのか、読み込み、または、追加を行うのかを指定します。
- ・w:書き込み
- ・a:追加専用
- ・r:読み込み
よく使われるオープンモードは上記の通り。
「w」や「r」はファイルが存在していない時に指定するとエラーになるので、注意しましょう。
では、fopen関数を使ってファイルに書き込みをする方法を、詳しく解説していきます。
fopen関数からファイルに書き込みをする
それでは、実際にfopen関数の使い方を見ていきましょう。
コードの書き方は以下の通り。
※テキストファイル「test.txt」をすでに作成しているものとします。
1 2 3 4 5 6 7 8 9 10 |
<?php // ファイルを開く $fp = fopen('./test.txt', 'w'); // ファイルに書き込む fwrite($fp, "はじめまして\n"); // ファイルを閉じる fclose($fp); ?> |
まず、fopenで第1引数にファイル名の「./test.txt」を指定し、第2引数に書き込みのオープンモードである「w」を指定します。
このfopen関数を変数「$fp」に代入し、fwrite関数の第1引数に指定しましょう。
fwrite関数の第2引数には、書き込みたい文字列を記述しましょう。
そして、fclose関数でfopen関数によって開いたファイルを閉じます。
ファイルを更新すると、test.txtの中に「はじめまして」という文字列が入っていますね。
1 2 |
//実行結果 はじめまして |
このように、fopen関数でオープンモードを「w」とすることで、ファイルに書き込みをすることができます。
fwrite関数やfclose関数と合わせて使えるようになりましょう。
追加でファイルに書き込みをする
今度は、fopen関数を使ってファイルに書き込みを追加する方法を解説していきます。
ファイルに書き込みを追加する場合は、fopenのオープンモードに「a」と指定します。
1 2 3 4 5 6 7 8 9 10 |
<?php // ファイルを開く $fp = fopen('./test.txt', 'a'); // ファイルに書き込む fwrite($fp, "こんにちは\n"); // ファイルを閉じる fclose($fp); ?> |
fopen関数の第1引数に「./test.txt」、第2引数に追加のオープンモードである「a」を指定します。
先ほどと同じように、fopen関数を代入した変数「$fp」をfwrite関数の第1引数に指定し、第2引数には追加したい文字列を指定しましょう。
そして、fclose関数でファイルを閉じます。
結果を見てみると、「こんにちは」という文字列がファイルに追加されていますね。
1 2 3 |
//実行結果 はじめまして こんにちは |
このように、fopenでオープンモードを「a」とすることで、ファイルに書き込みを追加することができます。
いろいろな文字列を指定して、書き込みを追加してみましょう。
ファイルの読み込みをする方法
ここまでで、ファイルに書き込みをする方法についてわかりました。
では、その書き込んだ文字列を、今度は読み込んでみましょう。
fopen関数で、ファイルの読み込みをする場合は、オープンモードを「r」とすることで、読み込むことができます。
実際のコードの書き方は次の通り。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // ファイルを開く $fp = fopen('./test.txt', 'r'); // ファイルを取得する while($result = fgets($fp)){ echo $result."<br>"; } // ファイルを閉じる fclose($fp); ?> |
まず、fopen関数の第1引数にファイル名の「test.txt」を指定し、第2引数に読み込みのオープンモードである「r」を指定します。
そして、今回はファイルを読み込みたいので、fgetsという関数を使います。
繰り返し処理のwhile文にfgets関数でファイルを取得し、変数「$result」に代入します。
取得したファイルの中身を順に表示するために、echoで$resultを指定しましょう。
あとは、開いたファイルを閉じるために、fclose関数を指定して完了です。
結果を表示すると、ファイルに書き込みをした文字列が出力されていますね。
このように、fopen関数のオープンモードに「r」を指定し、fgetsでファイルを取得すれば、書き込みをした文字列を読み込むことができます。
fopen関数を使ってファイルの書き込み、追加、読み込みをする方法を覚えて、実際にファイル操作ができるようになりましょう。
繰り返し処理として用いたwhile文について、詳しく知らない人は以下をご覧ください。
【初心者向け】PHPのwhileを使ったループの仕方は?基本構文や他の制御文との違いを分かりやすく解説します。まとめ
今回は、PHPでファイルに書き込みをする方法について解説しました。
ファイルに書き込みをするには、file_put_contentsやfopenなどの関数を使って実装することができます。
fopenでファイルの書き込みを行う場合は、fopen(ファイルを開く)、fwrite(ファイルに書き込む)、fclose(ファイルを閉じる)という流れを覚えておきましょう。
また、file_put_contentsでファイルを読み込む場合は、このfopenからfcloseの処理をまとめて書くことができます。
どちらの方法でもファイルに書き込みができるように、使い方を覚えておくといいでしょう。
この記事がPHPの学習に役立つと幸いです。
また、以下からもファイル操作について学ぶことができます。
ざっくりPHP入門(初心者〜中級者向け)