PHP判斷文件或者目錄是否可寫


在PHP中,可用is_writable()函數來判斷一個 文件/目錄 是否可寫,詳情如下:

參考

is_writable

(PHP 4, PHP 5)

is_writable — 判斷給定的文件名是否可寫

說明

bool is_writable ( string $filename )

如果文件存在並且可寫則返回 TRUE。($filename 參數可以是一個目錄名,即檢查目錄是否可寫。 )

記住 PHP 也許只能以運行 webserver 的用戶名(通常為 'nobody')來訪問文件。不計入安全模式的限制。

Example #1 is_writable() 例子

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
	echo 'The file is writable';
} else {
	echo 'The file is not writable';
}
?>

 

注意:is_writeable() 是 is_writable() 的別名!

 


 

但是,上面那個函數在PHP4中是有BUG的,尤其是在Windows服務器下判斷不准,官方相關bug報告鏈接如下:

http://bugs.php.net/bug.php?id=27609

為了兼容各個操作系統,可自定義一個判斷可寫函數,代碼如下:

/**
 * 判斷 文件/目錄 是否可寫(取代系統自帶的 is_writeable 函數)
 *
 * @param string $file 文件/目錄
 * @return boolean
 */
function new_is_writeable($file) {
	if (is_dir($file)){
		$dir = $file;
		if ($fp = @fopen("$dir/test.txt", 'w')) {
			@fclose($fp);
			@unlink("$dir/test.txt");
			$writeable = 1;
		} else {
			$writeable = 0;
		}
	} else {
		if ($fp = @fopen($file, 'a+')) {
			@fclose($fp);
			$writeable = 1;
		} else {
			$writeable = 0;
		}
	}

	return $writeable;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM