-
- $filename = '/path/to/foo.txt';
- if (file_exists($filename)) {
- echo "ファイル $filename が存在します";
- } else {
- echo "ファイル $filename が存在しません";
- }
- ?>
コードをコピー
ファイルが存在する場合、PHP ファイルの実行結果は次のように表示されます: ファイル C:blablaphphello.txt が存在します。
ファイルが存在しない場合、PHP ファイルの実行結果は次のように表示されます: ファイル C:blablaphphello.txt は存在しません。
file_exists 関数を使用して、ディレクトリが存在するかどうかをテストすることもできます。サンプルコード:
-
- if (file_exists("C:blablaphp"))
- {echo "yes";}
- else
- {echo "no";}
- ?>
コードをコピー
例
-
- /**
- * ファイルまたはディレクトリのパーミッションチェック関数
- *
- * @access public
- * @param string $file_path ファイルパス
- * @param bool $rename_prv 変更パーミッションチェック時にrename()関数の実行パーミッションをチェックするかどうか
- *
- * @ return int 戻り値の値の範囲は、{0 <= x <= 15} です。各値の意味は、4 つの 2 進数の組み合わせから推測できます。
- * 戻り値はバイナリ表記であり、上位から下位までの 4 桁はそれぞれ、
- * rename() 関数を実行する権限、ファイルにコンテンツを追加する権限、ファイルを書き込む権限、およびファイルを読み取る権限を表します。
- */
- function file_mode_info($file_path)
- {
- /* 存在しない場合は、読み取り不可、書き込み不可、変更不可*/
- if ( ! file_exists($file_path))
- {
- return false;
- }
- $mark = 0;
- if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
- {
- /* テストファイル*/
- $test_file = $file_path . '/cf_test.txt';
- /* ディレクトリの場合*/
- if (is_dir($file_path))
- {
- /* ディレクトリが読み取り可能かどうかを確認します*/
- $dir = @opendir($ file_path);
- if ($dir === false)
- {
- return $mark; //ディレクトリが開けない場合は、変更、書き込み、読み取りができないディレクトリに直接戻ります
- }
- if (@readdir($dir) ! == false)
- {
- $mark ^= 1; //ディレクトリは読み取り可能 001、ディレクトリは読み取り不可 000
- }
- @closedir($dir);
- /* かどうかを確認ディレクトリは書き込み可能です*/
- $fp = @fopen ($test_file, 'wb');
- if ($fp === false)
- {
- return $mark //ディレクトリ内のファイルの作成に失敗した場合、書き込み不可を返します。
- }
- if (@fwrite($fp, 'ディレクトリアクセステスト。') !== false)
- {
- $mark ^= 2; //ディレクトリは書き込み可能かつ読み取り可能 011、ディレクトリは書き込み可能かつ読み取り不可 010
- }
- @fclose($fp);
- @unlink($test_file);
- /* ディレクトリが変更可能かどうかを確認します*/
- $fp = @fopen($test_file, 'ab+');
- if ($fp = == false)
- {
- return $mark;
- }
- if (@fwrite($fp, "modify test.rn") !== false)
- {
- $mark ^= 4;
- }
- @fclose($ fp);
- /* ディレクトリに rename() 関数を実行する権限があるかどうかを確認します*/
- if (@rename($test_file, $test_file) !== false)
- {
- $mark ^= 8;
- }
- @unlink($test_file );
- }
- /* ファイルの場合*/
- elseif (is_file($file_path))
- {
- /* 読み取りモードで開きます*/
- $fp = @fopen($file_path, ' rb');
- if ( $fp)
- {
- $mark ^= 1; //読み取り可能 001
- }
- @fclose($fp);
- /* ファイルを変更してみます*/
- $fp = @fopen( $file_path, 'ab+') ;
- if ($fp && @fwrite($fp, '') !== false)
- {
- $mark ^= 6 //変更、書き込み、読み取りは可能、111 は不可変更、書き込み、読み取り 011...
- }
- @fclose($fp);
- /* ディレクトリに rename() 関数を実行する権限があるかどうかを確認します*/
- if (@rename($test_file, $test_file) ! == false)
- {
- $mark ^ = 8;
- }
- }
- }
- else
- {
- if (@is_readable($file_path))
- {
- $mark ^= 1;
- }
- if (@is_writable( $file_path))
- {
- $mark ^ = 14;
- }
- }
- return $mark;
- }
- ?>
コードをコピー
ディレクトリが存在するかどうかを判断する PHP の例:
-
- /*--------------
- * XML データストリームを XML ファイルに書き込みます
- * @param $xmlData
- * @return bool|string
- */
- function writeXmlFile($xmlData)
- {
- $time = time(); //ファイルの名前に使用されるタイムスタンプを取得します
- $path = dirname(__FILE__) //現在の絶対パスを取得します
- $path = substr_replace($path, "",tripos($path, "actionsdata")); //このファイルの固有パスを空のパスに置き換えます
- $path .= "xmlFiles" //ストレージディレクトリ名
- / *ターゲット ディレクトリが存在するかどうかを確認し、存在しない場合は新しいディレクトリを作成します*/
- if(!is_dir($path))
- {
- mkdir($path); //新しいディレクトリを作成します
- }
- /*完全なパスを記録しますファイル名*/
- $filePathAndName = $path.$time.".xml";
- /*ファイルを開きます。ファイル名は + <.xml>*/
- $fp = fopen($ filePathAndName, "w") ;
- if(!$fp)
- {
- return false;
- }
- /*ファイルストリームに書き込む*/
- $flag = fwrite($fp, $xmlData);
- if(!$flag )
- {
- return false ;
- }
- fclose($fp);
- return $filePathAndName;
- }
- ?>
コードをコピー
|