検索

キーワード


目次

【PHP】ファイル操作について(ファイルの読み込み、書き込み)

  • 公開日:2020-10-14 18:08:05
  • 最終更新日:2021-02-05 17:56:27

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

ファイル操作

PHPではファイルの読み込みや、ファイルへの書き込みを行う関数が用意されています。

ここでは、ファイル操作を行うための関数を解説していきます。


fopen

fopen関数とは、ファイルまたはURLをオープンしてくれる関数です。

あるデータからファイルにデータの情報を読み込ませたり、ファイルの内容にデータ情報を書き込みする際など、ファイルを指定して、指定したファイルを開く(持ってくる)ための関数です。

fopen(開きたいファイル名, オープンモード)

オープンモードとは、fopenでファイルを開く際に、どういう様式(モード)でファイルを開くかを指定します。

これを指定することによって、書き込みOKにしたり、読み込みのみなどの形式でファイルを開くことができます。

オープンモードについては公式ドキュメントを参考ください。


fwriteとfclose

fopen関数でファイルを開いたら、fwrite関数でファイルに書き込んでみましょう。

fopen(書き込みたいファイル名, 書き込む文字列)

sample.txtというテキストファイルに、"Hello, world!"という文字列を描き込んでみます。

<?php

// 書き込みモードでファイルを開く
$fp = fopen("sample.txt", "w");

// ファイルに書き込む
fwrite($fp, "Hello, world!");

// ファイルを閉じる
fclose($fp);

?>
Hello, world!

ファイルへの書き込み処理などが終わったら、開いたファイルは最後にfclose関数を使用してファイルを閉じましょう。


file_get_contents

file_get_contents関数を利用すると、指定したファイルの内容を全て文字列として読み込むことができます。

それではfile_get_contents関数を使って、sample.txtのファイルの内容を出力してみましょう。

まずはsample.txtを用意します。

AAA
BBB
CCC
DDD

ファイルを用意したら、file_get_contents関数でファイルの内容を変数に格納し、出力してみます。

<?php

$str = file_get_contents("sample.txt");
echo $str;

?>
AAA
BBB
CCC
DDD


file_put_contents

file_put_contents関数を利用すると、文字列を指定したファイルに書き込むことができます。また、指定したファイルがない場合は新規に作成します。

file_put_contents(書き込み対象のファイルパス, 書き込む文字列)

それではfile_get_contents関数を使って、sample.txtのファイルの内容を出力してみましょう。

<?php

// 書き込む対象のファイルパスを定義する
// 今回はプログラムと書き込みファイルが同一階層にあるものとする
$file = "sample.txt";
$string = "Hello, world!";

// 文字列をsample.txtに書き込む
file_put_contents($file, $string);
?>

処理結果は帰ってきませんが、書き込み対象のsample.txtを開いて確認してみましょう。

Hello, world!

と書いてあれば成功です。


まとめ

今回はファイル操作についてまとめてみました。

これらのファイル操作の関数は、ファイルを読み込んだり、ウェブページの取得や読み込み時のステータスコードを取得できるなど、非常に便利な関数ですので、しっかり覚えておくとよいでしょう。


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事