时间:2016-02-24 19:27 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【PHP文件或目录权限检查函数】,下面是详细的分享!
PHP文件或目录权限检查函数
function file_mode_info($file_path)
{
if (!file_exists($file_path))
{
return false;
}
$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');
if ($fp===false)
{
return $mark; //如果目录中的文件创建失败,返回不可写。
}
if (@fwrite($fp, 'directory access testing.') !==false)
{
$mark ^=2; //目录可写可读011,目录可写不可读 010
}
@fclose($fp);
{
$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');
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.\r\n") !==false)
{
$mark ^=4;
}
@fclose($fp);
if (@rename($test_file, $test_file) !==false)
{
$mark ^=8;
}
@unlink($test_file);
}
elseif (is_file($file_path))
{
$fp=@fopen($file_path, 'rb');
if ($fp)
{
$mark ^=1; //可读 001
}
@fclose($fp);
$fp=@fopen($file_path, 'ab+');
if ($fp && @fwrite($fp, '') !==false)
{
$mark ^=6; //可修改可写可读 111,不可修改可写可读011...
}
@fclose($fp);
if (@rename($test_file, $test_file) !==false)
{
$mark ^=8;
}
}
}
else
{
if (@is_readable($file_path))
{
$mark ^=1;
}
$fp=@fopen($test_file, 'ab+');
if ($fp===false)
{
return $mark;
}
if (@fwrite($fp, "modify test.\r\n") !==false)
{
$mark ^=4;
}
@fclose($fp);
if (@rename($test_file, $test_file) !==false)
{
$mark ^=8;
}
@unlink($test_file);
}
elseif (is_file($file_path))
{
$fp=@fopen($file_path, 'rb');
if ($fp)
{
$mark ^=1; //可读 001
}
@fclose($fp);
$fp=@fopen($file_path, 'ab+');
if ($fp && @fwrite($fp, '') !==false)
{
$mark ^=6; //可修改可写可读 111,不可修改可写可读011...
}
@fclose($fp);
if (@rename($test_file, $test_file) !==false)
{
$mark ^=8;
}
}
}
else
{
if (@is_readable($file_path))
{
$mark ^=1;
}
if (@is_writable($file_path))
{
$mark ^=14;
}
}
{
$mark ^=14;
}
}
return $mark;
}
}
以上所分享的是关于PHP文件或目录权限检查函数,下面是编辑为你推荐的有价值的用户互动:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
