ホームページ >バックエンド開発 >PHPチュートリアル >ファイルまたはディレクトリが存在するかどうかを確認する PHP コード

ファイルまたはディレクトリが存在するかどうかを確認する PHP コード

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-25 09:08:041294ブラウズ
  1. $filename = '/path/to/foo.txt';
  2. if (file_exists($filename)) {
  3. echo "ファイル $filename が存在します";
  4. } else {
  5. echo "ファイル $filename が存在しません";
  6. }
  7. ?>
コードをコピー

ファイルが存在する場合、PHP ファイルの実行結果は次のように表示されます: ファイル C:blablaphphello.txt が存在します。 ファイルが存在しない場合、PHP ファイルの実行結果は次のように表示されます: ファイル C:blablaphphello.txt は存在​​しません。

file_exists 関数を使用して、ディレクトリが存在するかどうかをテストすることもできます。サンプルコード:

  1. if (file_exists("C:blablaphp"))
  2. {echo "yes";}
  3. else
  4. {echo "no";}
  5. ?>
コードをコピー

  1. /**
  2. * ファイルまたはディレクトリのパーミッションチェック関数
  3. *
  4. * @access public
  5. * @param string $file_path ファイルパス
  6. * @param bool $rename_prv 変更パーミッションチェック時にrename()関数の実行パーミッションをチェックするかどうか
  7. *
  8. * @ return int 戻り値の値の範囲は、{0 * 戻り値はバイナリ表記であり、上位から下位までの 4 桁はそれぞれ、
  9. * rename() 関数を実行する権限、ファイルにコンテンツを追加する権限、ファイルを書き込む権限、およびファイルを読み取る権限を表します。
  10. */
  11. function file_mode_info($file_path)
  12. {
  13. /* 存在しない場合は、読み取り不可、書き込み不可、変更不可*/
  14. if ( ! file_exists($file_path))
  15. {
  16. return false;
  17. }
  18. $mark = 0;
  19. if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
  20. {
  21. /* テストファイル*/
  22. $test_file = $file_path . '/cf_test.txt';
  23. /* ディレクトリの場合*/
  24. if (is_dir($file_path))
  25. {
  26. /* ディレクトリが読み取り可能かどうかを確認します*/
  27. $dir = @opendir($ file_path);
  28. if ($dir === false)
  29. {
  30. return $mark; //ディレクトリが開けない場合は、変更、書き込み、読み取りができないディレクトリに直接戻ります
  31. }
  32. if (@readdir($dir) ! == false)
  33. {
  34. $mark ^= 1; //ディレクトリは読み取り可能 001、ディレクトリは読み取り不可 000
  35. }
  36. @closedir($dir);
  37. /* かどうかを確認ディレクトリは書き込み可能です*/
  38. $fp = @fopen ($test_file, 'wb');
  39. if ($fp === false)
  40. {
  41. return $mark //ディレクトリ内のファイルの作成に失敗した場合、書き込み不可を返します。
  42. }
  43. if (@fwrite($fp, 'ディレクトリアクセステスト。') !== false)
  44. {
  45. $mark ^= 2; //ディレクトリは書き込み可能かつ読み取り可能 011、ディレクトリは書き込み可能かつ読み取り不可 010
  46. }
  47. @fclose($fp);
  48. @unlink($test_file);
  49. /* ディレクトリが変更可能かどうかを確認します*/
  50. $fp = @fopen($test_file, 'ab+');
  51. if ($fp = == false)
  52. {
  53. return $mark;
  54. }
  55. if (@fwrite($fp, "modify test.rn") !== false)
  56. {
  57. $mark ^= 4;
  58. }
  59. @fclose($ fp);
  60. /* ディレクトリに rename() 関数を実行する権限があるかどうかを確認します*/
  61. if (@rename($test_file, $test_file) !== false)
  62. {
  63. $mark ^= 8;
  64. }
  65. @unlink($test_file );
  66. }
  67. /* ファイルの場合*/
  68. elseif (is_file($file_path))
  69. {
  70. /* 読み取りモードで開きます*/
  71. $fp = @fopen($file_path, ' rb');
  72. if ( $fp)
  73. {
  74. $mark ^= 1; //読み取り可能 001
  75. }
  76. @fclose($fp);
  77. /* ファイルを変更してみます*/
  78. $fp = @fopen( $file_path, 'ab+') ;
  79. if ($fp && @fwrite($fp, '') !== false)
  80. {
  81. $mark ^= 6 //変更、書き込み、読み取りは可能、111 は不可変更、書き込み、読み取り 011...
  82. }
  83. @fclose($fp);
  84. /* ディレクトリに rename() 関数を実行する権限があるかどうかを確認します*/
  85. if (@rename($test_file, $test_file) ! == false)
  86. {
  87. $mark ^ = 8;
  88. }
  89. }
  90. }
  91. else
  92. {
  93. if (@is_readable($file_path))
  94. {
  95. $mark ^= 1;
  96. }
  97. if (@is_writable( $file_path))
  98. {
  99. $mark ^ = 14;
  100. }
  101. }
  102. return $mark;
  103. }
  104. ?>
コードをコピー

ディレクトリが存在するかどうかを判断する PHP の例:

  1. /*--------------
  2. * XML データストリームを XML ファイルに書き込みます
  3. * @param $xmlData
  4. * @return bool|string
  5. */
  6. function writeXmlFile($xmlData)
  7. {
  8. $time = time(); //ファイルの名前に使用されるタイムスタンプを取得します
  9. $path = dirname(__FILE__) //現在の絶対パスを取得します
  10. $path = substr_replace($path, "",tripos($path, "actionsdata")); //このファイルの固有パスを空のパスに置き換えます
  11. $path .= "xmlFiles" //ストレージディレクトリ名
  12. / *ターゲット ディレクトリが存在するかどうかを確認し、存在しない場合は新しいディレクトリを作成します*/
  13. if(!is_dir($path))
  14. {
  15. mkdir($path); //新しいディレクトリを作成します
  16. }
  17. /*完全なパスを記録しますファイル名*/
  18. $filePathAndName = $path.$time.".xml";
  19. /*ファイルを開きます。ファイル名は + <.xml>*/
  20. $fp = fopen($ filePathAndName, "w") ;
  21. if(!$fp)
  22. {
  23. return false;
  24. }
  25. /*ファイルストリームに書き込む*/
  26. $flag = fwrite($fp, $xmlData);
  27. if(!$flag )
  28. {
  29. return false ;
  30. }
  31. fclose($fp);
  32. return $filePathAndName;
  33. }
  34. ?>
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。