빈 파일 디렉토리에 대한 읽기 및 쓰기 권한이 있는지 확인하는 PHP 코드

PHP中文网
풀어 주다: 2023-02-28 20:50:02
원래의
2251명이 탐색했습니다.

빈 파일 디렉토리에 읽기 및 쓰기 권한이 있는지 확인하는 PHP 코드

is_writable은 처리에 사용됩니다. 파일에 액세스하기 위한 사용자 이름(보통 'nobody')입니다. 안전 모드 제한에 포함되지 않습니다.
예제 #1 is_writable() 예

<?php 
$filename = &#39;test.txt&#39;; 
if (is_writable($filename)) { 
echo &#39;The file is writable&#39;; 
} else { 
echo &#39;The file is not writable&#39;; 
} 
?>
로그인 후 복사


위 함수의 한 가지 문제점은 파일 이름이 필수라는 것입니다. 검사할 파일은 반드시 파일이어야 한다고 규정하고 있으며, 디렉터리는 판단할 수 없습니다. 다음으로 빈 디렉터리를 판단하겠습니다.
예제 1
이 기능은 특히 정적 파일을 생성해야 하는 일부 프로젝트에서 매우 일반적으로 사용됩니다. 디렉터리 사용 가능 여부는 해당 디렉터리에 파일 생성 및 파일 삭제 권한이 있는지 여부에 따라 다릅니다.

/* 
问题出现:如何检查一个目录是否可写,如何目录下还有目录和文件,那么都要检查 
思路: 
(1)首先先写出检查空目录是否可写的算法: 
在该目录中生成一个文件,如果不能生成,表明该目录没有写的权限 
(2)使用递归的办法来进行检查 
代码实现: 
*/ 
set_time_limit(1000); 
function check_dir_iswritable($dir_path){ 
$dir_path=str_replace(&#39;\&#39;,&#39;/&#39;,$dir_path); 
$is_writale=1; 
if(!is_dir($dir_path)){ 
$is_writale=0; 
return $is_writale; 
}else{ 
$file_hd=@fopen($dir_path.&#39;/test.txt&#39;,&#39;w&#39;); 
if(!$file_hd){ 
@fclose($file_hd); 
@unlink($dir_path.&#39;/test.txt&#39;); 
$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.&#39;/&#39;.$file)){ 
//文件不可写,直接返回 
if(!is_writable($dir_path.&#39;/&#39;.$file)){ 
return 0; 
} 
}else{ 
$file_hd2=@fopen($dir_path.&#39;/&#39;.$file.&#39;/test.txt&#39;,&#39;w&#39;); 
if(!$file_hd2){ 
@fclose($file_hd2); 
@unlink($dir_path.&#39;/&#39;.$file.&#39;/test.txt&#39;); 
$is_writale=0; 
return $is_writale; 
} 
//递归 
$is_writale=check_dir_iswritable($dir_path.&#39;/&#39;.$file); 
} 
} 
} 
} 
return $is_writale; 
}
로그인 후 복사

위의 예에서는 주로 fopen을 사용하여 디렉터리에 파일을 생성하거나 파일에 내용을 쓰므로 해당 디렉터리의 읽기 및 쓰기 권한을 결정할 수 있습니다.

위 내용은 빈 파일 디렉토리에 읽기, 쓰기 권한이 있는지 확인하는 PHP 코드 내용입니다. 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿