PHPでファイルの存在を確認する2つの方法!(is_file)

PHP

PHPで「指定したパスのファイル」が存在しているか確認する方法について書いています。
下記の2つの関数を使って、ファイルパスが存在するか確認することができます。

・is_file関数
・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関数を使っていきましょう。

コメント

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