PHP如何进行目录的遍历、统计、删除和复制操作
Admin 2022-08-10 群英技术资讯 794 次浏览
这篇文章给大家分享的是“PHP如何进行目录的遍历、统计、删除和复制操作”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。$dirname=’phpMyAdmin’;
/*
* 遍历目录:
* 输入:目录路径
* 输出:目录名或者文件名
*/
function browser dir ($dirname){
$dir=opendir($dirname);
$filenames=array();
//注$filename只是获得的文件名,若进行文件操作必须指明“文件的路径”
while ($filename=readdir($dir)) {//读到结尾返回假
if($filename!=’.’ && $filename != ‘..’){
$filenames[]=$filename;
}
}
closedir($dir);
return $filenames;
}
/*
* 统计目录大小:
* 核心思想:目录的遍历
* 输入:$dirname——目录路径
* 输出:字节数
*/
function getDirSize($dirname){
$filenames=browserDir($dirname);
foreach ($filenames as $v){
$dirfile=$dirname.’/’.$v;
if($v!=’.’ && $v!=’..’){
if(is_dir($dirfile)){
$dirsize+=getDirSize($dirfile);
}else{
$dirsize+=filesize($dirfile);
}
}
}
return $dirsize;
}
/*
* 删除目录:
* 输入:$dirname——目录路径
*/
function delDir($dirname){
if( file _exists($dirname)){//判断目录是否存在
$filenames=browserDir($dirname);
if(!empty($filenames)){
foreach ($filenames as $v){
$file=$dirname.’/’.$v;
if(is_dir($file)){
delDir($file);
}else{
unlink($file);//删除文件
}
}
rmdir($dirname);//删除空目录
echo ‘<script> alert (“删除目录成功!”)</script>;’;
}else{
rmdir($dirname);
echo ‘<script>alert(“删除目录成功!”)</script>;’;
}
}else{
echo ‘<script>alert(“对不起,你删除的目录不存在或者已经删除!”)</script>;’;
}
}
/*
* 复制目录:
* 核心思想:创建目录、复制文件
* 输入:$dirform——源目录;$dirto——新目录;
*
*/
function copyDir($dirform,$dirto){
if(is_file($dirto)){
echo “目标不是目录不能创建”;
return;
}
if(!file_exists($dirto)){
mkdir ($dirto);
}
$filenames=browserDir($dirform);
foreach ($filenames as $v){
$filefrom=$dirform.’/’.$v;
$fileto=$dirto.’/’.$v;
if(is_dir($filefrom)){
copyDir($filefrom, $fileto);
}else{
copy($filefrom, $fileto);
}
}
}
/*
* 单位换算:
* $size:以B为单位的大小
*
*/
function setSize($size){
$ dw =”B”;//单位
if($size >= pow(2,40)){
$size=round($size/pow(2,40),2);//小数点保留两位
$dw=”TB”;
}elseif($size >= pow(2,30)){
$size=round($size/pow(2,30),2);//小数点保留两位
$dw=”GB”;
}elseif($size >= pow(2,20)){
$size=round($size/pow(2,20),2);//小数点保留两位
$dw=”MB”;
}elseif($size >= pow(2,10)){
$size=round($size/pow(2,10),2);//小数点保留两位
$dw=”KB”;
}
return $size.$dw;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
workerman中定时器不生效的原因是:定时器不能在【runAll】方法执行前运行,此方法执行前运行的代码全部属于主进程,主进程不能有业务代码,主进程的业务代码会被子进程继承。解决方法是:在【onWorkerStart】中运行定时器即可。
本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于定时任务的用法以及原理的相关内容,根据应用场景讲解一下定时任务的相关问题,下面一起来看一下,希望对大家有帮助。
Swoole4为PHP语言提供了强大的CSP协程编程模式,用户可以通过go函数创建一个协程,以达到并发执行的效果。go()函数用于创建协程;Co::yield()使得当前协程让出CPU;Co::resume()可恢复某个协程执行。
以下是对PHP数组数字键名的几点总结:键名长度只能在int长度范围内,超过int范围后将会出现覆盖等混乱情况在键名长度为int范围内存取值时,PHP会强制将数字键名转换为int数值型数字键名长度大于19位时,将变成0键名正常长度时,字符串或数值类型一样$i=126545165;$arr['126545165']='abc';$arr[126545165]
在本篇文章里小编给大家整理了一篇关于php缓存的类型总结及用法,对此有需要的朋友们可以跟着学习下。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008