Function code in PHP to determine whether an empty file directory has read and write permissions_PHP Tutorial

WBOY
Release: 2016-07-21 15:17:13
Original
1155 people have browsed it

is_writable is used to handle this, remember that PHP may only be able to access the file as the username running the webserver (usually 'nobody'). Does not count towards Safe Mode limits.
Example #1 is_writable() Example

Copy code The code is as follows:

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

One problem with the above function is that filename is required. It is stipulated that the file to be checked must be a file, and the directory cannot be judged. Next, we will judge the empty directory.
Example 1
This function is very commonly used, especially in some projects that need to generate static files. Whether a directory can be used depends on whether the directory has permission to create files and delete files
Copy code The code is as follows:

/*
The problem arises: how to check whether a directory is writable, and how there are directories and files in the directory, then All should be checked
Ideas:
(1) First write out the algorithm to check whether the empty directory is writable:
Generate a file in the directory. If it cannot be generated, it means that the directory does not have write permission
(2) Use recursive method to check
Code implementation:
*/
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)){
//The file is not writable, return directly
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;
}
//Recursion
$is_writale=check_dir_iswritable($dir_path.'/'.$file);
}
}
}
}
return $is_writale;
}

The above example mainly uses fopen to create files in the directory or write content in the file, so that the read and write permissions of the directory can be determined.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/325768.htmlTechArticleis_writable is used for processing, remember that PHP may only be able to run the webserver as the username (usually 'nobody') to access the file. Does not count towards Safe Mode limits. Example #1 is_writable...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!