>백엔드 개발 >PHP 튜토리얼 >파일이나 디렉토리가 존재하는지 확인하는 PHP 코드

파일이나 디렉토리가 존재하는지 확인하는 PHP 코드

WBOY
WBOY원래의
2016-07-25 09:08:041207검색
  1. $filename = '/path/to/foo.txt';
  2. if (file_exists($filename)) {
  3. echo "$filename 파일이 존재합니다";
  4. } else {
  5. echo "$filename 파일이 존재하지 않습니다";
  6. }
  7. ?>
복사 코드

파일이 존재하는 경우 PHP 파일을 실행하면 표시되는 결과는 다음과 같습니다. C:blablaphello.txt 파일이 존재합니다. 파일이 존재하지 않는 경우 PHP 파일을 실행하면 다음과 같은 결과가 표시됩니다: C:blablaphello.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 <= x <= 15}이며, 각 값의 의미는 다음의 조합에서 파생될 수 있습니다. 네 개의 이진수.
  9. * 반환 값은 이진 표기법으로 되어 있습니다. 네 자리 숫자는 각각
  10. * 실행 가능한 rename() 함수 권한, 파일에 콘텐츠를 추가할 수 있는 권한, 파일 쓰기 권한, 파일을 읽을 수 있는 권한을 나타냅니다. .
  11. */
  12. 함수 file_mode_info($file_path)
  13. {
  14. / * 존재하지 않으면 읽을 수 없고, 쓸 수 없고, 변경할 수 없습니다*/
  15. if (!file_exists($file_path))
  16. {
  17. return false;
  18. }
  19. $mark = 0 ;
  20. if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
  21. {
  22. /* 테스트 파일*/
  23. $test_file = $file_test.txt ' ;
  24. /* 디렉토리인 경우*/
  25. if (is_dir($file_path))
  26. {
  27. /* 디렉토리를 읽을 수 있는지 확인*/
  28. $dir = @opendir ($file_path) ;
  29. if ($dir === false)
  30. {
  31. return $mark; //디렉토리 열기에 실패하면 수정, 쓰기 또는 편집이 불가능한 디렉토리로 직접 복귀합니다. read
  32. }
  33. if (@readdir($dir) !== false)
  34. {
  35. $mark ^= 1; //디렉토리를 읽을 수 있음 001, 디렉터리를 읽을 수 없음 000
  36. }
  37. @closedir($dir);
  38. /* 디렉토리에 쓰기 가능한지 확인*/
  39. $fp = @fopen($test_file, 'wb');
  40. if ($fp == = false)
  41. {
  42. return $ mark; //디렉토리에 파일 생성에 실패하면 쓰기 불가능을 반환합니다.
  43. }
  44. if (@fwrite($fp, '디렉터리 액세스 테스트.') !== false)
  45. {
  46. $mark ^= 2 //디렉터리 쓰기 및 읽기 가능 011, 디렉토리 쓰기는 가능하지만 읽기는 불가능 010
  47. }
  48. @fclose($fp);
  49. @unlink($test_file);
  50. /* 디렉토리 수정 가능 여부 확인*/
  51. $fp = @fopen( $test_file, 'ab ');
  52. if ($fp === false)
  53. {
  54. return $mark;
  55. }
  56. if (@fwrite($fp, " 수정 테스트 rn") !== false)
  57. {
  58. $mark ^= 4;
  59. }
  60. @fclose($fp);
  61. /* rename() 함수가 있는지 확인하세요. Permissions*/
  62. if (@rename($test_file, $test_file) !== false)
  63. {
  64. $mark ^= 8;
  65. }
  66. @unlink 디렉토리에서 실행되었습니다. ($test_file);
  67. }
  68. /* 파일인 경우*/
  69. elseif (is_file($file_path))
  70. {
  71. /* 읽기 모드로 열기*/
  72. $fp = @fopen($ file_path, 'rb');
  73. if ($fp)
  74. {
  75. $mark ^= 1; //읽기 가능 001
  76. }
  77. @fclose($ fp);
  78. /* 파일 수정 시도*/
  79. $fp = @fopen($file_path, 'ab ');
  80. if ($fp && @fwrite($fp, '') ! == false)
  81. {
  82. $mark ^= 6; //수정, 쓰기 및 읽기 가능 111, 수정, 쓰기 및 읽기 불가 011...
  83. }
  84. @fclose($ fp);
  85. /* 디렉터리에 rename() 함수를 실행할 권한이 있는지 확인*/
  86. if (@rename($test_file, $test_file) !== false)
  87. {
  88. $ mark ^= 8;
  89. }
  90. }
  91. }
  92. else
  93. {
  94. if (@is_reader($file_path))
  95. {
  96. $mark ^= 1;
  97. }
  98. if (@ is_writable($file_path))
  99. {
  100. $mark ^= 14;
  101. }
  102. }
  103. return $mark;
  104. }
  105. ?>
코드 복사

디렉토리 존재 여부를 확인하는 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, "", Stripos($path, "actionsdata " )); //이 파일의 고유 경로를 빈
  11. $path .= "xmlFiles"; //저장 디렉터리 이름
  12. /*대상 디렉터리가 있는지 확인하고, 없으면 새로 만듭니다.* /
  13. if(!is_dir($path))
  14. {
  15. mkdir($path); //새 디렉터리 생성
  16. }
  17. /*전체 경로와 파일 이름을 기록하세요*/
  18. $filePathAndName = $path.$time.".xml";
  19. /*파일을 엽니다. 파일 이름은 */
  20. $fp = fopen($filePathAndName , "w" );
  21. if(!$fp)
  22. {
  23. return false;
  24. }
  25. /*파일 스트림 쓰기*/
  26. $flag = fwrite($fp, $xmlData) ;
  27. if(!$flag)
  28. {
  29. false 반환;
  30. }
  31. fclose($fp);
  32. return $filePathAndName;
  33. }
  34. ?>
코드 복사


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.