B370 ファイルの読み込み・出力

PHPではデータの保存にデータベースがよく利用されますが、テキストファイルにデータを書き込むことも可能です。今回は、ファイルの扱い方について紹介します。

ファイルの読み込み

fgets関数

fgets関数を用いることでファイルの中身を読み取ることができます。

memo.txtファイル

PHP
おはようございます
こんにちは
こんばんは

PHP
// ファイルを変数に格納
$file = 'memo.txt';
 
// fopenでファイルを開く('r'は読み込みモードで開く)
$fp = fopen($file, 'r');
 
// fgetsでファイルを読み込み、変数に格納
$txt = fgets($fp);
 
// ファイルを読み込んだ変数を出力
echo $txt;
 
// fcloseでファイルを閉じる
fclose($fp);

出力結果

PHP
おはようございます

fgets関数は改行までの1行単位で取得する関数なので、上記ではファイルの1行目のみが取得されました。1行だけでなく、ファイルすべてを取得したい場合は、1行取得する処理をループさせ、繰り返し取得していきます。

file_get_contents関数

file_get_contents関数を使えばfopen(),fgets(),fclose()による一連のファイルオープンから読み込み、クローズまでを1つの関数で簡単に処理し1行だけでなく全文取得してくれます。

memo.txtファイル

PHP
おはようございます
こんにちは
こんばんは

PHP
$file = 'memo.txt';
// ファイルを読み込み変数に格納
$content = file_get_contents($file);
 
// ファイルの中身を出力
echo $content;

出力結果

PHP
おはようございます
こんにちは
こんばんは

ファイルの出力

touch関数

touch関数は空のファイルを作成することができます。

PHP
$filename = 'file.txt';
touch($filename);

file_put_contents関数

file_put_contents関数はテキストファイルへ文字列を書き込むことができます。

PHP
$filename = 'file.txt';
$content = 'コンテンツ';
 
file_put_contents($filename,$content);

例題

下記コードの出力はどれか

memo.txtファイル

PHP
赤青黄

PHP
$file = 'memo.txt';
// ファイルを読み込み変数に格納
$content = file_get_contents($file);
 
// ファイルの中身を出力
echo $content;
  1. 赤青黄
回答

4. 赤青黄
file_get_contents関数はファイルの中を全て読み込むため。

---