【ラズパイで始めるWEBアプリ開発】PHPを使って、テキストファイルを読み込む方法

PHP

PHPで、テキストファイルを読み込む方法を紹介します。

広告

テストデータを作ります

まずは、テストデータを作成します。
test.txtという名前で、以下のテキストデータを保存してください。

あいうえおかきくけこさしすせそたちつてと
広告

PHPファイルを実行する方法

これから紹介するサンプルコードを動かすには、以下の手順を参照してください。

①PHPファイルを作成する

エディタを開いて、phpファイルを作成する。

$ sudo nano /var/www/html/sample.php


sample.phpは、適当な名前を付けてください。

nanoエディタが開いているので、ソースコードをコピーして、貼り付ける。

その後、以下の手順で保存します。

CTRL + O で書き込み保存です。
CTRL + X でエディタから抜けます。

②ブラウザで、自作PHPファイルを表示する

ブラウザーを開いて、以下のURLを入力します。

http://raspberrypi.local/phpinfo.php
広告

fgets関数を使う場合

fgets()は、改行までの1行を取得する関数です。

<?PHP

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

?>
広告

fgets関数を使って全文取得する

fgets()関数は、1行しか取得できないので、while文を使って、全文を取得してみます。

<?PHP

$filename = 'test.txt';
 
// fopenでファイルを開く('r'は読み込みモードで開く)
$fp = fopen($filename, 'r');
 
// whileで行末までループ処理
while (!feof($fp)) {
 
  // fgetsでファイルを読み込み、変数に格納
  $txt = fgets($fp);
 
  // ファイルを読み込んだ変数を出力
  echo $txt.'<br>';
 
}
 
// fcloseでファイルを閉じる
fclose($fp);

?>
広告

file_get_contents関数を使う場合

file_get_contents関数は、fopen()、fgets()、fclose()を含んだ関数です。

1つの関数で、ファイルオープンから読み込み、さらにクローズまでやってくれます。さらに、1行だけでなく全文を取得します。

<?php

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

?>
広告

readfile関数を使う場合

readfile関数は、表示までもしてくれる関数です。

<?php
// ファイルを変数に格納
$filename = 'test.txt';

// readfileでファイルの全文出力
readfile($filename);

?>
広告

file関数を使う場合

file関数は、以下のパラメータを持ちます。

file ( 読み込みたいファイル名またはパス [ , フラグ(省略可)] );

フラグは以下の3種類です。省略も可です。    

FILE_USE_INCLUDE_PATH :ファイルを、インクルードディレクトリも含めて探す 
FILE_IGNORE_NEW_LINES :配列の各要素の最後に改行文字が含まれない  
FILE_SKIP_EMPTY_LINES :空行を配列の要素として読み込まない

<?php

// ファイルを変数に格納
$filename = 'test.txt';
 
// ファイルを配列に格納し、さらに変数に格納
$lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
 
// 配列を出力
print_r($lines);

?>

file関数のパラメータで、FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINESを付与しましたが、これにより、テストデータ内の無駄な改行を省いてくれます。

広告

file関数を使う場合その2

count()関数は、変数に含まれる要素数を返します。

<?PHP
  // 読み込むファイル名の指定
  $file_name = "test.txt";

  // ファイルを全て配列に入れる
  $ret_array = file( $file_name );

  // 取得したファイルデータ(配列)を全て表示する
  for( $i = 0; $i < count($ret_array); ++$i ) {
    // 配列を順番に表示する
    echo( $ret_array[$i] . "<br />\n" );
  }

?>
広告

参考

PHPでファイルの読み込みをする主な4つの方法
PHPでファイルを読み込む主な4つの方法を徹底解説!簡単に出力できたり、配列に格納したりと様々。なんとなく使っていた人も解説を読めば使い分けることができますよ

コメント

タイトルとURLをコピーしました