* 可执行 rename()
函数权限、可对文件追加内容权限、可写入文件权限、可读取文件权限。
*/
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
);
@unlink(
$test_file
);
/*
检查目录是否可修改 */
$fp
= @
fopen
(
$test_file
, 'ab+');
if
(
$fp
=== false)