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