PHPでのファイルの読み込み方法!テキストを1行ずつ/全文取得する方法を解説!

PHPでファイルの読み込みをするときには、関数を使って配列を取得しながら読み込みをします。この記事では、PHPを1行ずつファイルの読み込みをする場合と、全文を一度に取得する場合のそれぞれについて、利用する関数の使い方をわかりやすく解説します。

目次

  1. 1PHPファイルは関数を使って読み込みする!
  2. 2PHPファイルの全文の読み込みを簡単に行う方法
  3. file_get_contents関数で全文を読み込み
  4. 3PHPファイルを行単位の配列として読み込みする方法
  5. fgets関数でテキストを行単位で読み込み
  6. 4CSVファイルをPHPで読み込みする方法
  7. fgetcsv関数を使う方法
  8. 文字化けを防ぐ方法
  9. 5PHPでファイルの情報を取得する方法
  10. ファイルサイズを取得する方法
  11. 更新日時を取得する方法
  12. 6PHPでファイルの読み込み処理の方法を覚えよう!

PHPファイルは関数を使って読み込みする!

PHPを利用できる環境をPCに整えたら、まず始めることは自分でPHPのプログラムを書けるようにすることです。自分でPHPのプログラムを書けないと、PHPで何ができて、どのようなことが実行されているのか理解できません。

しかし、ある程度プログラムを書けるようになってきて、実践段階に入ったら、外部のファイルの読み込みも行っていきます。外部ファイルの読み込みができるようになれば、プログラムファイルの内容に厚みが出てきます。

この記事では、PHPで外部ファイルの読み込みをしていきましょう。PHPでファイルを読み込みするためには、関数を利用します。この記事では、PHPで関数を使って外部ファイルを読み込みする方法について詳しく解説します。

テスト用のファイルとして、PHPの実行フォルダに次のテキストファイルを作成しておきました。
 

1行目 これはテストです。
2行目 今日のテストは順調です。
3行目 このテストの結果を見てみましょう。

ショートカット(旧:Workflow)の自動化プログラミングで自作レシピの作成方法を解説!
ショートカット(旧:Workflow ワークフロー)の自動化プログラミングで自作レシピを作成...

PHPファイルの全文の読み込みを簡単に行う方法

まずは外部ファイルの全文の読み込みを簡単にできる方法を解説します。PHPで、ファイル全文の読み込みをする方法は次の通りです。

file_get_contents関数で全文を読み込み

PHPでファイルの全文を読み込むための関数は「file_get_contents」という関数を利用します。これとは別に「file」という関数もあります。fileとfile_get_contentsの違いは、fileはファイルそのものを配列として読み込みます。一方でfile_get_contentsは、ファイルを文字列として読み込みます。

ファイルの中に別のファイルを読み込む場合には、文字列としてファイルの読み込みするのが普通なので、通常はfile_get_contentsを利用します。file_get_contentsでうまく読み込めないときにはfileを使いましょう。

それではPHPでプログラムを書いてみましょう。
 

<?php
$contents = file_get_contents("test.txt");
echo $contents;
?>

これをブラウザ上で実行してみると、上記の画像の様にテキストファイルが読み込みされて、PHPで全文の読み込みが実行されています。

プログラミングにはMacがおすすめ!開発向けのスペックでパソコンを選ぼう!
これからプログラミングの勉強を始めようと思っている皆さんは、PC選びで悩んでいませんか?Ma...

PHPファイルを行単位の配列として読み込みする方法

PHPで読み込みたいファイルがあった場合、全文は必要なく、ファイルの一部分の配列だけ読み込みできればいい場合もあります。そのような場合には、ファイルの配列を1行ずつ読み込みしましょう。こちらでは、PHPでファイルの配列を1行ずつ読み込みする方法について解説します。

fgets関数でテキストを行単位で読み込み

1行ずつPHPでファイルを読み込む場合には、「fgets」という関数を使います。fgetsという関数は、指定されたファイルの中から、指定された1行の配列だけを取り出すための関数です。

この記事の一番最初に作ったテキストファイルの中から、2行目の「2行目 今日のテストは順調です」だけをファイルから読み込むためのプログラムを作成してみましょう。

基本的なプログラムの書き方は次の通りです。
 

<?php
$fp = fopen("読み込むファイル名", "r");
$line = fgets($fp);
echo "$line<br>";
fclose($fp);
?>

実行するプログラムは次の通りです。
<?php
$fp = fopen("test.txt", "r");
$line = fgets($fp);
echo "$line<br>";
fclose($fp);
?>

ブラウザで実行結果を確認してみます。

1行の配列だけが読み込みされています。

Pythonで簡単なDiscord Botの作り方!プログラミング初心者にもわかりやすく解説!
Discordでのやり取りにBotを活用しませんか?定番の応答や、あらかじめ決めた送信作業な...

CSVファイルをPHPで読み込みする方法

CSVファイルもPHPで読み込みができます。CSVファイルをPHPで読み込みして出力する方法も見ておきましょう。あらかじめ読み込みするCSVファイルをPHPを実行するフォルダに保存しておきます。それでは、このファイルをPHPに読み込みする方法を解説します。

fgetcsv関数を使う方法

fgetcsvを使ってCSVファイルをPHPで読み込みする方法です。fgetcsvはCSVファイルから1行ずつ値を取得して読み込みする関数です。fgets関数とよく似ていますが、fgetcsvはCSVファイルの特徴である、カンマで区切られた値を配列として取得します。

プログラムは次のように書きます。

<?php
$file = '読み込むCSVファイル名';
if (($fp = fopen($file, 'r')) !== FALSE){
  $row = 0;
  while (($line = fgetcsv($fp)) !== FALSE) {
    if ($row ==  0){
      echo 'タイトル:'.$line[0].'<br>';
      $row++;
      continue;
    }
    echo $line[0].'<br>';
    $row++;
  }
}else{
  echo $file.'の読み込みに失敗しました。';
}
fclose($fp);
?>

CSVファイルの読み込みを実行した結果が、ブラウザ上で上記の画像のようになる実際のプログラムはこちらです。

<?php
$file = 'test.csv';
if (($fp = fopen($file, 'r')) !== FALSE){
  $row = 0;
  while (($line = fgetcsv($fp)) !== FALSE) {
    if ($row ==  0){
      echo 'タイトル:'.$line[0].'<br>';
      $row++;
      continue;
    }
    echo $line[0].'<br>';
    $row++;
  }
}else{
  echo $file.'の読み込みに失敗しました。';
}
fclose($fp);
?>

関連するまとめ

関連するキーワード

この記事のライター
K.C
皆様のお役に立てる情報をお届けするために日々精進していきます。どうぞよろしくお願いします。

人気の記事

新着まとめ