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

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

高洛峰
高洛峰原創
2016-12-01 13:13:411049瀏覽

下面是一個簡單的檢查檔案是否存在的實例碼: 
複製程式碼 程式碼如下: 
$filename = '/path/to/foo.txt'; 
if (file_exists($filename)) { 
echo "The file $filename exists"; 
} else { 
echo "The file $filename does not exist"; 

?> 

如果檔案存在,執行該PHP 檔案的顯示結果是:?> 

如果檔案存在,執行該PHP 檔案的顯示結果是: blablaphphello.txt exists. 
如果檔案不存在,執行該PHP 檔案的顯示結果是: 
The file C:blablaphphello.txt does not exist. 
你也可以用file_exists 函數測試某個目錄是否存在,範例程式碼如下:
複製程式碼 程式碼如下: 
if (file_exists("C:blablaphp")) 
{echo "yes";} 
else 
{echo "no";} 
/**外實例實例碼#&*/ 
function file_mode_info($file_path) 

/* 若不存在,不可讀取、不可寫入、不可改變*/ 
if (!file_exists($file_path)))}; $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'); 
$fp = @fopen($test_file, 'wb'); 
if ($fp = == false) 

return $mark; //如果目錄中的檔案建立失敗,則回傳不可寫入。

if (@fwrite($fp, 'directory access testing.') !== 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; /* 檢查目錄下是否有執行rename()函數的權限*/ 
if (@rename($test_file, $test_file) !== false) 

$mark ^= 8; 

@unlink($test_unlink($t. ); 

/* 如果是檔案*/ 
elseif (is_file($file_path)) 

/* 以讀取方式開啟*/ 
($fp = @fpfffile_path, 'rb'); $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) 

{ 🎠 ^ = 8; 



else 

if (@is_readable($file_path)) 

^ = 14; 


return $mark; 


PHP判斷目錄是否存在 
複製碼 程式碼如下: 
/**
* 檔案或目錄權限檢查函數 

* @access public 
* @param string $file_path 檔案路徑 
* @param bool $rename_prv 是否在檢查修改權限時檢查執行rename()函數的功能的權限return int 傳回值的值範圍為{0 * 回傳值在二進位計數法中,四位由高到低分別代表 
* 可執行rename()函數權限、可對檔案追加內容權限、可寫入檔案權限、可讀取檔案權限。 
*/ 
複製程式碼 程式碼如下: 
/****************************************************
* 將xml資料流,寫入到xml檔 
* @param $xmlData 
* @return bool|string 
*/ 
複製碼(); //取得時間戳,用於為檔案命名 
$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));
fclose($fp); 
return $filePathAndName; 

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