更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/24 | JJI | ・サンプルプログラムの実行結果に画面の画像を追加 |
ファイル・ディレクトリチェック
ファイル・ディレクトリチェックでは、次の関数についてサンプルプログラムを使って説明します。
- 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>
コメント