php type file保存路径,PHP常用技术文之文件操作和目录操作总结

这篇文章主要介绍了PHP常用技术文之文件操作和目录操作总结,本文讲解了基本文件的操作、目录的操作等内容,需要的朋友可以参考下

一、基本文件的操作

文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等

header("content-type","text/html;charset=utf-8");

/*

*声明一个函数,传入文件名获取文件属性

*@param string $fileName 文件名称

*/

function getFilePro($fileName)

{

if(!file_exists($fileName))

{

echo '文件不存在
';

return;

}

/*是否是普通文件*/

if(is_file($fileName))

{

echo $fileName.'是一个文件
';

}

/*是否是目录*/

if(is_dir($fileName))

{

echo $fileName.'是一个目录';

}

/*输出文件的型态*/

echo '文件型态是:'.getFileType($fileName).'
';

/*文件大小,转换单位*/

echo '文件大小是:'.getFileSize(filesize($fileName)).'
';

/*文件是否可读*/

if(is_readable($fileName))

{

echo '文件可读
';

}

/*文件是否可写*/

if(is_writable($fileName))

{

echo '文件可写
';

}

/*文件是否可执行*/

if(is_executable($fileName))

{

echo '文件可执行
';

}

echo '文件创立时间:'.date('Y年m月j日',filectime($fileName)).'
';

echo '文件最后修改时间:'.date('Y年m月j日',filemtime($fileName)).'
';

echo '文件最后打开时间:'.date('Y年m月j日',fileatime($fileName)).'
';

}

/*

*声明一个函数,返回文件类型

*@param string $fileName 文件名称

*/

function getFileType($fileName)

{

$type = '';

switch(filetype($fileName))

{

case 'file':$type .= '普通文件';break;

case 'dir':$type .= '目录文件';break;

case 'block':$type .= '块设备文件';break;

case 'char':$type .= '字符设备文件';break;

case 'filo':$type .= '管道文件';break;

case 'link':$type .= '符号链接';break;

case 'unknown':$type .= '未知文件';break;

default:

}

return $type;

}

/*

*声明一个函数,返回文件大小

*@param int $bytes 文件字节数

*/

function getFileSize($bytes)

{

if($bytes >= pow(2,40))

{

$return = round($bytes / pow(1024,4),2);

$suffix = 'TB';

}

else if($bytes >= pow(2,30))

{

$return = round($bytes / pow(1024,3),2);

$suffix = 'GB';

}

else if($bytes >= pow(2,20))

{

$return = round($bytes / pow(1024,2),2);

$suffix = 'MB';

}

else if($bytes >= pow(2,10))

{

$return = round($bytes / pow(1024,1),2);

$suffix = 'KB';

}

else

{

$return = $bytes;

$suffix = 'B';

}

return $return." ".$suffix;

}

/*调用函数,传入test目录下的test.txt文件*/

getFilePro('./test/div.html');

?>

结果:

223a314faf067b6262f0c8b9212b5a73.png

二、目录的操作

目录的操作有:遍历目录、删除、复制、大小统计等

1、遍历目录

/*

*遍历目录

*@param string $dirName 目录名

*/

function findDir($dirName)

{

$num = 0; /*统计子文件个数*/

$dir_handle = opendir($dirName); /*打开目录*/

/*输出目录文件*/

echo '

echo '

目录'.$dirName.'下的文件

';

echo '

echo '

文件名文件大小文件类型修改时间';

while($file = readdir($dir_handle))

{

$dirFile = $dirName.'/'.$file;

$bgcolor = $num++%2==0?'#ffffff':'#cccccc';

echo '

';

echo '

'.$file.'';

echo '

'.filesize($dirFile).'';

echo '

'.filetype($dirFile).'';

echo '

'.date('Y/n/t',filemtime($dirFile)).'';

echo '

';

}

echo "

";

closedir($dir_handle); /*关闭目录*/

echo "在".$dirName."目录下共有".$num.'个子文件';

}

/*传递当前目录下的test目录*/

findDir('./test');

结果

b91696659aaf6cc8259048cf9862cb62.png

2、统计目录大小

/*

*统计目录大小

*@param string $dirName 目录名

*@return double

*/

function dirSize($dirName)

{

$dir_size = 0;

if($dir_handle = @opendir($dirName))

{

while ($fileName = readdir($dir_handle))

{

/*排除两个特殊目录*/

if($fileName != '.' && $fileName != '..')

{

$subFile = $dirName.'/'.$fileName;

if(is_file($subFile))

{

$dir_size += filesize($subFile);

}

if(is_dir($subFile))

{

$dir_size += dirSize($subFile);

}

}

}

closedir($dir_handle);

return $dir_size;

}

}

/*传递当前目录下的test目录*/

$dir_size = dirSize('./test');

echo './test目录文件大小是:'.round($dir_size / pow(1024,1),2).'KB';

结果:

48120f12eae353b9da11099e50e246d1.png

3、删除目录

/*

*删除目录

*@param string $dirName 目录名

*/

function delDir($dirName)

{

/*php中的mkdir函数就可以创建目录*/

if(file_exists($dirName))

{

if($dir_handle = @opendir($dirName))

{

while ($fileName = readdir($dir_handle))

{

/*排除两个特殊目录*/

if($fileName != '.' && $fileName != '..')

{

$subFile = $dirName.'/'.$fileName;

if(is_file($subFile))

{

unlink($subFile);

}

if(is_dir($subFile))

{

delDir($subFile);

}

}

}

closedir($dir_handle);

rmdir($dirName);

return $dirName.'目录已经删除';

}

}

}

/*传递test目录的副本test1*/

echo delDir('./test1');

删除成功的提示信息

616b044821163e4530ba709c41b1f61f.png

4、复制目录

/*

*复制目录

*@param string $dirSrc 原目录名

*@param string $dirTo 目标目录名

*/

function copyDir($dirSrc,$dirTo)

{

if(is_file($dirTo))

{

echo '目标目录不能创建';/*目标不是一个*/

return;

}

if(!file_exists($dirTo))

{

/*目录不存在则创建*/

mkdir($dirTo);

}

if($dir_handle = @opendir($dirSrc))

{

while ($fileName = readdir($dir_handle))

{

/*排除两个特殊目录*/

if($fileName != '.' && $fileName != '..')

{

$subSrcFile = $dirSrc.'/'.$fileName;

$subToFile = $dirTo.'/'.$fileName;

if(is_file($subSrcFile))

{

copy($subSrcFile,$subToFile);

}

if(is_dir($subSrcFile))

{

copyDir($subSrcFile,$subToFile);

}

}

}

closedir($dir_handle);

return $dirSrc.'目录已经复制到'.$dirTo.'目录';

}

}

echo copyDir('./test','../testcopy');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值