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で、テキストファイルを読み込む方法を紹介しました。
参考
\WEBアプリの勉強するなら、ラズパイがいいですよ。/
コメント