#navi(../)
* PHPでファイルなのかディレクトリなのかを確認する方法 [#va753bac]
PHPでファイルなのかディレクトリなのかを確認するには以下の関数を使用します。
- is_dir
- is_file
is_dir, is_fileについての詳細な内容は以下のリンクを参照してください。
- PHP: Manual~
http://php.net/manual/ja/function.is-file.php~
http://www.php.net/manual/ja/function.is-dir.php
#contents
#htmlinsertpcsp(web-top.html,web-sp.html)
* 関連記事 [#e9bde6e6]
-[[PHPでファイルの存在確認を調べる方法>PHP/ファイルの存在確認を調べる方法]]
* 使用したPHPとテスト環境 [#xb9255aa]
使用したOSは、CentOS 5.8, PHPは5.1.6になります。
- OS
$ lsb_release -idc
Distributor ID: CentOS
Description: CentOS release 5.8 (Final)
Codename: Final
- PHP
$ php -version
PHP 5.1.6 (cli) (built: May 7 2012 15:03:06)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
* ファイルかディレクトリかを確認するサンプルPHPスクリプト [#acf56871]
本サンプルPHPスクリプトの動作確認は、コマンドラインから行いました。
#ref(is_file_dir.php)
<?php
mkdir('a');
touch('b');
/* check a */
if (is_file('a')) {
echo 'a is file.' . PHP_EOL;
}
if (is_dir('a')) {
echo 'a is directory' . PHP_EOL;
}
/* check b */
if (is_file('b')) {
echo 'b is file.' . PHP_EOL;
}
if (is_dir('b')) {
echo 'b is directory' . PHP_EOL;
}
rmdir('a');
unlink('b');
?>
上記のサンプルPHPスクリプトは、aディレクトリ、bファイルを作成しis_file, is_dir関数にてファイルかディレクトリかどうかの確認を行っています。~
存在確認後、作成したaディレクトリとbファイルを削除しています。
* サンプルPHPスクリプトの実行結果 [#f76fc6c0]
サンプルPHPスクリプトの実行結果は以下のようになります。~
ディレクトリかファイルかの判別がされています。
$ php is_file_dir.php
a is directory
b is file.
* file_exist関数と一緒につかう [#m1fbca74]
ファイルが存在しないのに、is_dir, is_fileを使っても意味がないので、以下のようにすればファイルの存在をチェックしファイルかディレクトリかどうかを確認することができます。
#ref(is_file_dir2.php)
<?php
mkdir('a');
if (file_exists('a')) {
if (is_file('a')) {
echo 'a is file.' . PHP_EOL;
} elseif(is_dir('a')) {
echo 'a is directory.' . PHP_EOL;
} elseif(is_link('a')) {
echo 'a is link file.' . PHP_EOL;
} else {
echo 'unknown' . PHP_EOL;
}
}
rmdir('a');
?>
* 備考 [#p6b28ba4]
シンボリックリンクかどうかは、is_link()関数を使用してください。
#htmlinsertpcsp(web-btm.html,web-sp.html)