PHPでファイルの存在チェック(file_exists)

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

PHPでファイルが存在したら処理をする、といったファイル存在チェックにはfile_exists()が便利です。

ファイルに読み書きする処理の前などに存在チェックをしてやることで、ファイルがなかった場合のエラーにも対処できます。

 

file_exists関数で存在チェック

ファイルまたはディレクトリが存在しているか調べてくれます。

ファイルの存在チェック

ファイルが存在するかをチェックし、存在した場合としない場合で条件分岐させ、それぞれにメッセージを表示させてみましょう。

ファイルは存在します。

ファイルが存在するので、ちゃんと存在しているとメッセージが表示されました。

file_exists関数の構文

file_exists ( チェックしたいファイルまたはディレクトリのパス );

存在した場合 → true を返す
存在しない場合 → false を返す

ファイルが存在した場合trueを返すので、if文でチェックして、処理を分ける方法が一般的な使い方ですね。

ディレクトリの存在チェック

file_exists()はファイルだけでなく、ディレクトリの存在チェックもしてくれます。

test/images/は存在します。

様々なファイル存在チェック

実際にファイルの存在チェックを使った、実用的なサンプルを見ていきましょう。

ファイルが存在していたらテキストを書き込む

該当ファイルが存在した場合にのみ、ファイルの書き込みを行います。

ファイルがあったのでテスト書き込み!

ファイルの存在をチェックし、存在したらファイルにテキストを書き込み、ファイルの中身を読み込んでブラウザに表示させました。

参考:PHPでのファイル書き込みとパーミッションエラー解決法

特定の拡張子が付いたファイルが存在するかチェックする

ファイルは存在します。

拡張子.txtが付いたファイルを探し、配列に格納します。

その配列の中身が空かどうかチェックし、条件分岐させています。

 

以下のように動作しています。

 

  1. glob()*.txtを指定し、拡張子が.txtのファイルを全て取得し、配列化する
    glob()は条件に合うファイルを全て取得して、配列化してくれる
    glob()に指定した*(アスタリスク)はワイルドカードと呼ばれ、全ての文字列に該当するという意味
    $txt = glob(‘test/*.txt’);
    参考:glob関数とunlink関数で削除
  2. empty()で配列の中身が空かどうかをチェック
    empty()は変数の中身が空かどうかをチェックし、0や空文字もtrueを返す
    if (empty($txt)) {
    参考:「empty」で0や空文字判定
  3. 空だったら「ファイルが見つかりません」と、空じゃなかったら「ファイルは存在します」と表示させる

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*