PHPで「指定したパスのファイル」が存在しているか確認する方法について書いています。
下記の2つの関数を使って、ファイルパスが存在するか確認することができます。
・file_exists関数
載せているサンプルコードについては、PHPのバージョン8.1.8を使って検証しています。
is_file関数で存在を確認する
is_file関数を使うと、指定したパスがファイルだった場合に論理値のtrueを返してくれます。
存在しないパスを指定してファイルがなかったり、ディレクトリだった場合はfalseが返ってきます。
公式ドキュメントのこちらの方に関数の解説が書いています。
例えば、下記のように使うことができます。
<?php
$exists = is_file("test/hello.txt");
if ($exists) {
echo "ファイルが存在する";
}
最初にis_file関数を使って、ファイルがあるか確認しています。
今回は「test」ディレクトリ配下の「hello.txt」ファイルを指定していますが、存在するため論理値のtrueが返ってきます。
返ってきた値を$exists変数で受け取っています。
そして、if文で返ってきた値を確認しています。
trueが返ってくるので「ファイルが存在する」が出力されて、処理が終了します。
引数
引数はファイルのパスを指定します。
相対パスで指定しても良いですが、ルートディレクトリからの絶対パスで指定することもできます。
返り値
存在するパスの場合はtrueが返ってきて、存在しないパスの場合はfalseが返ってきます。
ファイルが空であっても、指定したファイルが存在すればtrueになります。
file_exists関数で存在を確認する
file_exists関数でも、指定したパスが存在するか確認することが可能です。
こちらは、指定したパスがファイルまたはディレクトリの場合に論理値のtrueを返します。
存在しなかった場合は、falseになります。
公式ドキュメントのこちらの方に関数の解説が書いています。
例えば、下記のように使うことができます。
<?php
$exists = file_exists("test/hello.txt");
if ($exists) {
echo "ファイルまたはディレクトリが存在する";
}
file_exists関数を使って、ファイルかディレクトリが存在しているか確認しています。
今回は先ほどと同じ、「test」ディレクトリ配下の「hello.txt」ファイルを指定しています。
存在するのでtrueになります。
返ってきた値を$exists変数で受け取っています。
if文で返ってきた値を確認して、存在するので「ファイルまたはディレクトリが存在する」が出力されて処理が終了します。
存在するディレクトリでもtrueが返ってくるので、下記のように「text」ディレクトリを指定してもtrueになります。
<?php
$exists = file_exists("test/");
// ---- 省略 ----
引数
引数はファイルまたはディレクトリのパスを指定します。
相対パスか、ルートディレクトリからの絶対パスを指定します。
返り値
ファイルまたはディレクトリが存在すれば、論理値のtrueが返ってきます。
存在しない場合にはfalseが返ってきます。
おわりに
今回はPHPでファイルの存在を確認する方法について書きました。
is_file関数を使うと、ファイルが存在するか確認できました。
ディレクトリかファイルかどちらのパスでもtrueにしたいときにはfile_exists関数を使っていきましょう。
コメント