本記事ではPHPでファイルを操作する方法について解説します。
読み込み・書き込みを行う方法や削除する方法などについてまとめました。
ファイル操作に関して分からないことがあれば本記事を参考にしてください。
PHPでファイルの読み込みを行う方法
まず、PHPでファイルの読み込みを行う方法について解説します。
次の手順に基づいて解説していきましょう。
- ファイル全体を読み込む
- ファイルを一行ずつ読み込む
1)ファイル全体を読み込む
まずファイルの最初から最後までを一括で読み込む方法を解説します。
全体を読み込む場合、file_get_contents関数を使います
○コード例
<?php
$file = "test.txt";
$text = file_get_contents($file);
echo $text;
?>
○test.txt
1行目
2行目
3行目
○実行結果
上記のコードではfile_get_contents関数を使って「text.txt」の中身を取得しています。
file_get_contents関数はファイル名を引数に指定するだけで、ファイルの中身を取得することが可能です。
2)ファイルを一行ずつ読み込む
ファイルの最初の一行だけを読み込みたい場合、file_get_contents関数は使えません。
一行ずつ読み込む場合はfgets関数を使うのが一般的です。
○コード例
<?php
$file = "test.txt";
$fp = fopen($file, "r");
$text = fgets($fp);
fclose($fp);
echo $text;
?>
○実行結果
fgets関数を使う前に、fopen関数を使いファイルを「開く」必要があります。
fopen関数は第二引数に「r」を指定することで第一引数のファイルを開くことが可能です。
ファイルを開くことで初めてfgets関数を使うことができます。
また、ファイルを開いた後はfclose関数を使って閉じる必要があります。
これがfgets関数を使う基本の流れです。
それでは次にfgets関数を使い、ファイルを一行ずつ、すべての行を取り出す方法をみていきましょう。
○コード例
<?php
$file = "test.txt";
$fp = fopen($file, "r");
while(!feof($fp)) {
$text = fgets($fp);
echo $text;
}
fclose($fp);
?>
○実行結果
上記のようにfor文を使い、fgets関数をファイルの終端に到達するまで繰り返します。
feofはファイルの終端に達しているかを確認するための関数です。
PHPでファイルの書き込みを行う方法
続いて、PHPでファイルの書き込みを行う方法について解説します。
以下の手順に基づいて説明していきましょう。
- ファイルに新しく書き込む
- ファイルに追記する
1)ファイルに新しく書き込む
ファイルに書かれた情報を一度削除し新しい情報を書き込む方法を解説します。
ファイルに書き込みを行う際はfputsという関数を使います。
○コード例
<?php
$file = "test.txt";
$fp = fopen($file, "w");
fputs($fp, "Hello World!!");
fclose($fp);
?>
○実行結果
先程同様にfopenでファイルを開きます。
今回はファイルを読み込み用ではなく書き込み用に開きます。
書き込み用に開く場合第二引数に「w」を指定します。
ファイルを開いたら、fputs関数の第二引数にファイルに書き込む文字列を指定します。
これでファイルに新しい情報を書き込むことができます。
また、file_put_contentsを使う方法もあります。
○コード例
<?php
$file = "test.txt";
file_put_contents($file, "Hello World!!");
?>
○実行結果
こちらの方法でもファイルを新規で書き込むことが可能です。
2)ファイルに追記する
続いて、ファイルに追記する方法を解説しましょう。
○コード例
<?php
$file = "test.txt";
$fp = fopen($file, "a");
fputs($fp, "Hello World!!");
fclose($fp);
?>
○実行結果
ファイルに追記を行う場合、fopenの第二引数に「a」を指定します。
後は先程と同じくfpus関数で書き込みを行います。
その他PHPでファイル操作を行う方法
その他、PHPでファイル操作を行う方法についてまとめました。
- ファイルを新規作成する
- ファイルを削除する
- ファイルをコピーする
- ファイル名を変更する
以上の4つのやり方について説明していきます。
1)ファイルを新規作成する
ファイルに情報を書き込むのではなく、空のファイルを作成するだけの方法を紹介します。
○コード例
<?php
touch("new.txt");
?>
○実行結果
空のファイルを作成する場合はtouchという関数を使います。
これで新しく「new.txt」が作成されました。
2)ファイルを削除する
続いて、ファイルを削除する方法を解説します。
○コード例
<?php
unlink("new.txt");
?>
○実行結果
ファイルを削除する場合、unlink関数を使います。
上記ではunlinkによって先程作った「new.txt」を削除しています。
注意点ですがunlinkはファイルをゴミ箱に移動させるのではなく、完全に削除します。
一度削除したファイルは元に戻せないので、消して良いファイルか確認したうえで使いましょう。
3)ファイルをコピーする
続いて、ファイルをコピーする方法を解説します。
○コード例
<?php
touch("new.txt");
file_put_contents("new.txt", "Hello World!!");
copy("new.txt","new2.txt")
?>
○実行結果
ファイルをコピーする場合は、copy関数を使います。
上記ではcopyを使って、new.txtの内容をnew2.txtにコピーしています。
4)ファイル名を変更する
最後に、ファイル名を変更する方法を解説します。
○コード例
<?php
rename("new.txt","rename.txt")
?>
○実行結果
ファイル名を変更する際はrenameという関数を使います。
上記では「new.txt」を「rename.txt」に変更しています。
まとめ
本記事ではPHPでファイル操作を行う方法について解説しました。
PHPはWebアプリ開発で使われる言語なので、Webアプリで使うデータファイルなどを読み込むことが多くあります。
ファイル操作に関してはマスターしておくようにしましょう。