PHPのfread()関数とfilesize()関数を使用しファイルの内容全体を読み取る

PHPのfread()関数とfilesize()関数を使用し、ファイルの内容全体を読み取ってみます。

fread()関数は、バイナリセーフなファイルの読み込みが可能です。またfread()関数とfilesize()関数と組み合わせることで、ファイルの内容全体を読み取ることができます。本来は、filesize()関数を使用すると、ファイルのサイズをバイト単位で返されます。

■基本的な構文

filesize(filename)

filenameは、ファイルのサイズをチェックするファイルのパスを指定します。

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

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

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

■コード

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

if(file_exists($file)){
    $handle = fopen($file, "r") or die("エラー: ファイルを開くことができません");

    $content = fread($handle, filesize($file));

    fclose($handle);

    echo $content;
} else{
    echo "エラー: ファイルが存在しません";
}
?>
</body>
</html>

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

次にif文を使用し、file_exists()関数で、file変数の中に格納したファイルが存在するかチェックします。存在する場合(真・True)は、fopen()関数で、ファイルを”r”(読み込み)で開きます。開いた場合、die()関数でエラーが発生した場合の処理を指定します。

次に、contentという変数を宣言し、その中でfread()関数を使用し、fopen()関数で開いたファイルを読み込みます。この際にfread()関数の括弧内の第2の引数,パラメーターで、filesize()関数を使用します。括弧内には、ファイルのサイズをチェックするfile変数を指定します。

ファイルの中身を開いてデータを読み込み、サイズをチェックしたもの(content変数に格納したもの)をecho文で出力します。

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

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

■実行

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

実行させてみると、fread()関数とfilesize()関数と組み合わせることで、指定したファイルが開かれ、読み込みが開始され、ファイルのサイズをチェックし、チェックされたファイルの情報が出力されました。

コメント

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