PHPのreadfile()関数を使用しファイルの内容全体を簡単に読み取ってみます。
readfile()関数は、ファイルを出力することができます。またファイルを開かなくてもファイルの内容を読み取ることができます。
■基本的な構文
readfile(file, include_path, context)
fileは、読み込むファイルの指定します。
include_pathは、ファイルを検索するディレクトリ。オプションです。
contextは、オプションです。ファイルハンドル(どのファイルを処理しているかを管理するための名前)のコンテキストを指定します。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■readfile()関数を使用しファイル内容全てを読み取る
では、早速readfile()関数を使用しファイル内容全てを読み取ってみます。
■コード
<html lang="ja">
<head>
<title>readfile()関数を使用しファイル内容全てを読み取る</title>
</head>
<body>
<?php
$file = "C:/wamp64/www/project/test.txt";
if(file_exists($file)){
readfile($file) or die("エラー: ファイルを開くことができません");
} else{
echo "エラー: ファイルが存在しません";
}
?>
</body>
</html>
今回はfileという変数を宣言し、その中でtest.txtというファイルを指定し格納します。
次にif文を使用し、file_exists()関数で、file変数の中に格納したファイルが存在するかチェックします。存在する場合(真・True)は、readfile()関数を使用し、括弧内にfile変数を指定します。これで、ファイルの内容が読み取れます。またファイルを読み込んだ際にdie()関数でエラーが発生した場合の処理を指定します。
読み込んだファイルの内容は、echo文を使用しなくても、出力されます。
ちなみに、if文を使用し、file_exists()関数で、file変数の中に格納したファイルが存在しない場合(else)は、echo文を使用し、エラーの文字列を出力します。
なお、test.txtというファイルの中身を開いて読み込みますが、ファイルの中身は上記の内容(日本語の文字列)が記述されています。
■実行
では、このスクリプトを「read_file.php」という名前で保存し、実行させてみます。
実行させてみると、readfile()関数を使用したことで、指定したファイルの内容全てが読み取られ、出力させることができました。また、readfile()関数を使用したことで、コード自体が割と短く書くことができました。
コメント