PHPのfile()関数を使用しファイルの内容全体を簡単に読み取る

PHPのfile()関数を使用しファイルの内容全体を簡単に読み取ってみます。

file()関数は、ファイル全体を配列として読み込むことができます。ファイルの内容を単一の文字列ではなく、行の配列として返されます。

なお、配列の各要素は、ファイルの1行が改行文字を含めて格納されます。

■基本的な構文

file(filename, flag, context)

filenameは、読み込むファイルのパスを指定します。

flagは、オプションです。1つまたは複数の定数を指定できます。

contextは、オプションです。ファイルハンドル(どのファイルを処理しているかを管理するための名前)のコンテキストを指定します。NULLを使用することで省略することができます。

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

■file()関数を使用しファイル内容全てを読み取る

では、早速file()関数を使用しファイル内容全てを読み取ってみます。

■コード

<html lang="ja">
<head>
<title>file()関数を使用しファイル内容全てを読み取る</title>
</head>
<body>
<?php
$file = "C:/wamp64/www/project/test.txt";

if(file_exists($file)){
    $array_1 = file($file) or die("エラー: ファイルを開くことができません");
    foreach($array_1 as $element){
        echo $element;
    }
} else{
    echo "エラー: ファイルが存在しません";
}
?>
</body>
</html>

今回はfileという変数を宣言し、その中でtest.txtというファイルを指定し格納します。

次にif文を使用し、file_exists()関数で、file変数の中に格納したファイルが存在するかチェックします。存在する場合(真・True)は、array_1変数の中のfile()関数が使用され、file変数のファイルを配列として読み込み、格納します。またファイルを読み込んだ際にdie()関数でエラーが発生した場合の処理を指定します。

その後、foreach文を使用し、配列として読み込んだ情報(array_1変数)をelement変数に格納します。この時、配列内の要素(今回は文字列)が格納されます。

格納した配列内の要素を、echo文を使用し、繰り返し出力します。(ループ処理します。)

ちなみに、if文を使用し、file_exists()関数で、file変数の中に格納したファイルが存在しない場合(else)は、echo文を使用し、エラーの文字列を出力します。

なお、test.txtというファイルの中身を開いて読み込みますが、ファイルの中身は上記の内容(日本語の文字列)が記述されています。

■実行

では、このスクリプトを「read_file_test.php」という名前で保存し、実行させてみます。

実行させてみると、file()関数を使用したことで、ファイルの情報の読み込みが行われ、読み込んだ情報が配列となり、foreach文を使用した繰り返し処理で出力させることができました。

コメント

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