本文目錄一覽:
- 1、php檢查文件夾是否有寫入許可權
- 2、php網站文件目錄許可權如何開
- 3、PHP怎麼獲取文件目錄許可權
- 4、php中判斷文件空目錄是否有讀寫許可權的函數代碼
- 5、6.0運行時許可權檢查可以加在首頁嗎
- 6、php怎麼檢查某個文件夾下是否有可寫許可權
php檢查文件夾是否有寫入許可權
Check director is writable recursively. to return true, all of directory contents must be writable
?php
function is_writable_r($dir) {
if (is_dir($dir)) {
if(is_writable($dir)){
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != “.” $object != “..”) {
if (!is_writable_r($dir.”/”.$object)) return false;
else continue;
}
}
return true;
}else{
return false;
}
}else if(file_exists($dir)){
return (is_writable($dir));
}
}
?
php網站文件目錄許可權如何開
將許可權設置成777就可以了啊。chmod 777 【文件名】
「777」代表許可權,對應rwdrwdrwd,從左往右第一位『7』代表屬主的許可權對應第一組『rwd』,r標識可以讀,w代表可以寫,x代表可以執行。
第二位『7』代表屬組的許可權,第三位『7』代表所有人的許可權。例如只允許屬主讀寫執行賦予700許可權對應rwd許可權。也可以使用a、u、字母表示許可權,比如chmod a+x 【文件名】 是賦予任何人執行的許可權,chmod a+r 【文件名】是賦予所有人讀得許可權,chmod a+w 【文件名】是賦予所有人寫的許可權,等等。
不過設置777不安全,最好設置成可讀就可以了,744應該可以。
PHP怎麼獲取文件目錄許可權
PHP 獲取文件目錄許可權函數fileperms,使用這個函數可以文件或者目錄屬性。
例子程序:
?php
$perms = fileperms(‘/etc/passwd’);
if (($perms 0xC000) == 0xC000) {
// Socket
$info = ‘s’;
} elseif (($perms 0xA000) == 0xA000) {
// Symbolic Link
$info = ‘l’;
} elseif (($perms 0x8000) == 0x8000) {
// Regular
$info = ‘-‘;
} elseif (($perms 0x6000) == 0x6000) {
// Block special
$info = ‘b’;
} elseif (($perms 0x4000) == 0x4000) {
// Directory
$info = ‘d’;
} elseif (($perms 0x2000) == 0x2000) {
// Character special
$info = ‘c’;
} elseif (($perms 0x1000) == 0x1000) {
// FIFO pipe
$info = ‘p’;
} else {
// Unknown
$info = ‘u’;
}
php中判斷文件空目錄是否有讀寫許可權的函數代碼
is_writable用來處理,記住
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’;
}
?
上面的函數有一個問題就是filename
必需。規定要檢查的文件
,必須是文件啊,目錄不可判斷,下面我們來判斷空目錄。
實例1
該功能非常常用,特別在一些需要生成靜態文件的項目中,一個目錄是否可以,關乎到是否對該目錄有創建文件刪除文件的許可權
複製代碼
代碼如下:
/*
問題出現:如何檢查一個目錄是否可寫,如何目錄下還有目錄和文件,那麼都要檢查
思路:
(1)首先先寫出檢查空目錄是否可寫的演算法:
在該目錄中生成一個文件,如果不能生成,表明該目錄沒有寫的許可權
(2)使用遞歸的辦法來進行檢查
代碼實現:
*/
set_time_limit(1000);
function
check_dir_iswritable($dir_path){
$dir_path=str_replace(‘\’,’/’,$dir_path);
$is_writale=1;
if(!is_dir($dir_path)){
$is_writale=0;
return
$is_writale;
}else{
$file_hd=@fopen($dir_path.’/test.txt’,’w’);
if(!$file_hd){
@fclose($file_hd);
@unlink($dir_path.’/test.txt’);
$is_writale=0;
return
$is_writale;
}
$dir_hd=opendir($dir_path);
while(false!==($file=readdir($dir_hd))){
if
($file
!=
“.”
$file
!=
“..”)
{
if(is_file($dir_path.’/’.$file)){
//文件不可寫,直接返回
if(!is_writable($dir_path.’/’.$file)){
return
0;
}
}else{
$file_hd2=@fopen($dir_path.’/’.$file.’/test.txt’,’w’);
if(!$file_hd2){
@fclose($file_hd2);
@unlink($dir_path.’/’.$file.’/test.txt’);
$is_writale=0;
return
$is_writale;
}
//遞歸
$is_writale=check_dir_iswritable($dir_path.’/’.$file);
}
}
}
}
return
$is_writale;
}
上面實例主要是fopen去在目錄創建文件或在文件中寫內容,這樣就可以判斷目錄的讀寫許可權了。
6.0運行時許可權檢查可以加在首頁嗎
方法/步驟 1、首先,我們先查看系統後台主頁是否有「全面檢測」的目錄許可權檢測按鈕。如果有的話,直接點擊檢測;如果沒有則進入第二步。2、系統後台主頁上的檢測按鈕是自動出現的,其實,這個程序就是dede文件夾下的testenv.php文件,按照正確的路徑運行它即可。點擊「立即檢測」按鈕,如果可以正常檢測,則按照結果指導進行目錄許可權設置;如果點擊沒有反應,那麼我們可以判斷相關的目錄和文件許可權設置有問題。3、為了避免發現問題再解決問題的麻煩,我們為所有者、組、其他三類訪問對象賦予網站的所有文件和文件夾的所有許可權(即讀、寫、執行),這麼做能保證後台的正常運行。那麼怎麼做呢?登錄終端或遠程終端,筆者使用xshell軟體,登錄後,比如網站程序放在www文件夾下,則輸入「chmod -R 777 www/ 」回車執行。4、再回到testenv.php程序運行頁面,刷新,點擊「立即檢測」,發現能正常檢測,檢測結果提供了所有文件和文件夾的許可權設置指導方案,此時,我們可以根據這個檢測結果進行正確的設置。5、在後台執行原本不能正常運行的操作,也沒有故障。好了,那麼可以開工去修改準確許可權了。
php怎麼檢查某個文件夾下是否有可寫許可權
php檢查某個文件夾下是否有可寫許可權
/**
* 檢查目錄是否可寫
* @access public
* @param string $path 目錄
* @return boolean
*/
public function checkPath($path){
if (is_dir($path) || mkdir($path, 0755, true)) {
return true;
}
return false;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/162675.html