【PHP】これで分かる関数! – ファイル情報取得その3 –

PHP

更新履歴

更新日更新者更新内容
2021/8/24JJI・サンプルプログラムの実行結果に画面の画像を追加

ファイル・ディレクトリチェック

ファイル・ディレクトリチェックでは、次の関数についてサンプルプログラムを使って説明します。

  • file_exists()
  • is_file()
  • is_dir()
  • is_writable()

サンプルプログラム

サンプルプログラムです。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);
    // 共通ライブラリの読み込み
    require_once __DIR__ . "../../../lib/sample_common.php";

    echo "ファイル名:" . basename(__FILE__) . "<br>\n";
    echo "【PHP】ディレクトリ・ファイルチェック<br>\n";

    $dirname = "data";                  // 存在するディレクトリ
    $filename = "data/sample01.txt";    // 存在するファイル
    $nofilename = "data/noname.txt";    // 存在しないファイル
    $nodirname = "nodir";               // 存在しないディレクトリ

    echo "存在するファイルのチェック<br>\n";
    echo_exists_file($filename);

    echo "存在するディレクトリのチェック<br>\n";
    echo_exists_file($dirname);

    echo "存在しないファイルのチェック<br>\n";
    echo_exists_file($nofilename);

    echo "存在しないディレクトリのチェック<br>\n";
    echo_exists_file($nodirname);

    echo "ファイルかどうかのチェック<br>\n";
    if(! is_file($dirname)) {
        echo "${dirname}はファイルではありません<br><br>\n";
    }

    echo "ディレクトリかどうかのチェック<br>\n";
    if(! is_dir($filename)) {
        echo "${filename}はディレクトリではありません<br><br>\n";
    }

    echo "ファイル書き込み可能かチェック<br>\n";
    // パーミッションの変更
    chmod($filename, 0000);

    // 書き込み可能かチェック
    if(! is_writable($filename)) {
        echo "${filename}は書き込み可能ではありません<br><br>\n";
    }

    // パーミッションを戻す
    chmod($filename, 0777);

    // ファイル、ディレクトリ存在チェック関数
    function echo_exists_file(string $filename) :void {
        if(! file_exists($filename)) {
            echo "${filename}は存在しません<br><br>\n";
            return ;
        }
        echo "${filename}は存在します<br><br>\n";
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_08_37.php<br>
【PHP】ディレクトリ・ファイルチェック<br>
存在するファイルのチェック<br>
data/sample01.txtは存在します<br><br>
存在するディレクトリのチェック<br>
dataは存在します<br><br>
存在しないファイルのチェック<br>
data/noname.txtは存在しません<br><br>
存在しないディレクトリのチェック<br>
nodirは存在しません<br><br>
ファイルかどうかのチェック<br>
dataはファイルではありません<br><br>
ディレクトリかどうかのチェック<br>
data/sample01.txtはディレクトリではありません<br><br>
ファイル書き込み可能かチェック<br>
data/sample01.txtは書き込み可能ではありません<br><br>

コメント