読み込み中...

PHP初心者でもできる!ディレクトリの存在を確認する5つのステップ

PHPを使ったディレクトリの存在確認のイラスト PHP
この記事は約4分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、初心者でもPHPを使ってディレクトリの存在を確認する方法がマスターできるようになります。

ファイルとは異なり、ディレクトリはその中にさらにファイルやディレクトリを保持できるため、存在確認の方法も少々異なります。

ここでは、その具体的な手順とコードを紹介します。

●PHPでディレクトリが存在するかを確認する理由

ディレクトリが存在するかを確認することは、ウェブアプリケーション開発などのプログラミング作業において非常に重要です。

たとえば、特定のディレクトリにファイルを保存する場合、そのディレクトリが存在しないとエラーが発生します。

これを避けるためにも、事前にディレクトリの存在を確認することが求められます。

また、セキュリティ面でも重要です。

不正アクセスにより、予期しない場所にファイルが作成されている場合、そのディレクトリの存在を確認することで早期に問題を察知することが可能です。

●ディレクトリが存在するかを確認する基本的な手順

ディレクトリが存在するかを確認するためには、PHPにはfile_exists関数とis_dir関数という2つの関数が提供されています。

これらの関数を使うことで、簡単にディレクトリの存在を確認することが可能です。

それぞれの関数の使い方を詳細に説明します。

○file_exists関数による確認方法

file_exists関数は、ファイルまたはディレクトリが存在するかどうかを確認するための関数です。

関数名からも分かる通り、ファイルの存在確認にも使われますが、ディレクトリの存在確認にも利用できます。

そのため、ファイルかディレクトリかを問わず、存在を確認したい場合にはfile_exists関数を使用します。

□サンプルコード1:file_exists関数を使った例

このコードでは、file_exists関数を使って指定したパスのディレクトリが存在するかを確認しています。

存在していれば”ディレクトリが存在します。”と出力し、存在していなければ”ディレクトリが存在しません。”と出力します。

<?php
$dir = '/path/to/directory';

if (file_exists($dir)) {
    echo "ディレクトリが存在します。";
} else {
    echo "ディレクトリが存在しません。";
}
?>

○is_dir関数による確認方法

is_dir関数は、指定したパスがディレクトリであるかどうかを確認するための関数です。

これは、パスがディレクトリであることを明確に確認するためのもので、file_exists関数と異なり、ファイルの存在確認は行いません。

□サンプルコード2:is_dir関数を使った例

このコードでは、is_dir関数を使って指定したパスのディレクトリが存在するかを確認しています。

存在していれば”ディレクトリが存在します。”と出力し、存在していなければ”ディレクトリが存在しません。”と出力します。

<?php
$dir = '/path/to/directory';

if (is_dir($dir)) {
    echo "ディレクトリが存在します。";
} else {
    echo "ディレクトリが存在しません。";
}
?>

●ディレクトリの存在確認の応用例

ディレクトリの存在確認は、ファイルを保存する前の準備としてだけでなく、存在しないディレクトリを自動的に作成するという応用もあります。

これは、指定したディレクトリがない場合にエラーが発生するのを避けるために重要です。

○サンプルコード3:ディレクトリが存在しない場合のディレクトリ作成

このコードでは、まずis_dir関数でディレクトリの存在を確認します。

存在していなければ、mkdir関数でディレクトリを作成します。

このとき、第二引数には作成するディレクトリのパーミッションを、第三引数には中間のディレクトリも一緒に作成するかどうかを指定します。

ディレクトリが作成されれば”ディレクトリが存在しなかったため、作成しました。”と出力します。

<?php
$dir = '/path/to/directory';

if (!is_dir($dir)) {
    mkdir($dir, 0777, true);
    echo "ディレクトリが存在しなかったため、作成しました。";
} else {
    echo "ディレクトリが存在します。";
}
?>

まとめ

以上、PHPでディレクトリの存在を確認する方法について解説しました。

file_exists関数とis_dir関数を使って、自分が操作しようとしているディレクトリの存在を確認することは、プログラミングにおける基本的なスキルの一つです。

これらの関数の適用例として、ディレクトリの自動作成のサンプルコードも紹介しました。

この知識を活用して、エラーのないスムーズなプログラミングを実現しましょう。