首頁 >後端開發 >php教程 >php檢查檔案或目錄是否存在的程式碼

php檢查檔案或目錄是否存在的程式碼

WBOY
WBOY原創
2016-07-25 09:08:041208瀏覽
  1. $filename = '/path/to/foo.txt';
  2. if (file_exists($filename)) {
  3. echo "The file $filename exists";
  4. } else {
  5. echo "The file $filename does not exist";
  6. }
  7. ?>
複製代碼

如果檔案存在,執行該PHP 檔案的顯示結果是:The file C:blablaphphello.txt exists. 如果檔案不存在,執行該 PHP 檔案的顯示結果是:The file C:blablaphphello.txt does not exist.

也可以用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 * 傳回值在二進位計數法中,四位由高到低分別代表
  9. * 可執行rename()函數權限、可對檔案追加內容權限、可寫入檔案權限、可讀取檔案權限。
  10. */
  11. function file_mode_info($file_path)
  12. {
  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_path . '/cf_test.txt';
  24. /* 如果是目錄*/
  25. if (is_dir($file_path))
  26. {
  27. /* 檢查目錄是否可讀取*/
  28. $dir = @opendir($file_path);
  29. if ($dir === false)
  30. {
  31. return $mark; //如果目錄開啟失敗,直接回傳目錄不可修改、不可寫、不可讀
  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, 'directory access testing.') !== 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, "modify test. rn") !== false)
  57. {
  58. $mark ^= 4;
  59. }
  60. @fclose($fp);
  61. /* 檢查目錄下是否有執行rename()函數的權限*/
  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_readable($file_path))
  95. {
  96. $mark ^= 1;
  97. }
  98. if (@ is_writable($file_path))
  99. {
  100. $mark ^= 14;
  101. }
  102. }
  103. return $mark;
  104. }
?>

  1. 🎜>複製程式碼
  2. PHP判斷目錄是否存在的範例:
  3. /*---------------
  4. * 將xml資料流,寫入到xml檔
  5. * @param $xmlData
  6. * @return bool|string
  7. */
  8. function writeXmlFile($xmlData)
  9. {
$time = time(); //取得時間戳,用於為檔案命名
$path = dirname(__FILE__); //取得目前絕對路徑$path = substr_replace($path, "", stripos($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;}?>複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn