[PHP]资料夹建立更名与删除~档案上传part3

建立资料夹

mkdir函数用于建立资料夹,其格式为mkdir(资料夹路径,权限)

权限以0开头,后面接的数字是读取、写入、执行的权限。

(注意:Windows环境无法套用存取权限设定,只能依照预设值0777;
Linux环境可依照需求建立各种不同权限的资料夹)

範例程式码:

<?phpif(mkdir("./dirname", 0700))echo "成功建立资料夹"."<br>";elseecho "建立资料夹失败"."<br>";?>

输出结果:
http://img2.58codes.com/2024/20106434dn2YBwFSJh.png

此程式码执行成功后,会在档案的同一层建立一名为dirname的空资料夹

(补充)Linux环境内权限设定

可分别针对档案拥有人、档案拥有群组、其他人分别规划读、写、执行三种权限,分别用数字4、2、1表示:

档案拥有人 { 读[4] + 写[2] + 执行[1] }

档案拥有群组 { 读[4] + 写[2] + 执行[1] }

其他人 { 读[4] + 写[2] + 执行[1] }

例如要让目录开放给档案拥有人与档案拥有群组可以读写执行,而其他人只可以读,计算方式为:
档案拥有人=>可以读写执行:4+2+1=7
档案拥有群组=>可以读写执行:4+2+1=7
其他人只可以读=>4+0+0=4
权限设定=>774

删除资料夹

**rmdir()**函数是删除资料夹的指令,使用时必须注意要被删除的资料夹是否含有资料:
当资料夹内没有资料时 => 可顺利删除资料夹
当资料夹内有资料时 => 无法删除资料夹

範例程式码:

<?phpif(rmdir("./dirname"))echo "成功删除资料夹"."<br>";elseecho "删除资料夹失败"."<br>";if(is_dir("./dirname"))rmdir();elseecho "资料夹不存在"."<br>";?>

删除指定档案

unlink()函数可删除指定的档案

範例程式码:

<?phpif(unlink("./dirname/file2.png"))echo "成功删除档案"."<br>";elseecho "删除档案失败"."<br>";?>

若要删除的资料有多个,可以用glob()函数以阵列方式传回指定文件或目录资讯在进行删除

先来看glob()函数是如何运用的:

/dirname目录底下有不同类型的档案

http://img2.58codes.com/2024/201064343M62g3c5Jr.png

运用glob()函数指定查看目录内.txt的档案清单

範例程式:

<?php foreach (glob("./dirname/*.jpg") as $filename)echo basename($filename)." size ".filesize($filename)."<br>";?>

输出结果:
http://img2.58codes.com/2024/20106434mGVXyDiHY2.png

glob()函数内可放两个参数,第一个参数为必要参数,是「指定搜寻的样式」,第二个参数为非必要参数,参数目的是「指定详细的属性样式」

第二个参数可用属性样式
GLOB_MARK 返回每一个搜寻的资料夹前面加上斜线「/」
GLOB_NOSORT 返回资料夹内档案不做排序
GLOB_BRACE 使{a,b,c} 与'a','b'或'c'能互相搭配
GLOB_ERR 出现错误时停止执行

若要同时显示多个档案或多种档案类型,glob()函数可快速地帮我们完成:
範例程式:

<?php$multipath = "./dirname/";foreach (glob($multipath. "{*.png,*.txt}",GLOB_BRACE) as $filename) //利用glob()函数的GLOB_BRACE参数查询.png,*.txt档案,并使用foreach将回应的档案依序储存于变数$filename{echo basename($filename)."<br>"."size:".filesize($filename)."<br><br>";}echo "<hr>";foreach (glob($multipath. "{img1,img2}.jpg",GLOB_BRACE) as $filename) //利用glob()函数的GLOB_BRACE参数查询副档名为「jpg」而主档名为img1,img2的档案,并使用foreach将回应的档案依序储存于变数$filename{echo basename($filename)."<br>"."size:".filesize($filename)."<br><br>";}?>

输出结果:
http://img2.58codes.com/2024/20106434WGBT6uqsot.png

也可以运用glob()函数删除目录中所有不同类型的档案,并印出结果:
範例程式码:

<?php$dir="./dirname/";$files = glob($dir.'*');foreach ($files as $file) if(@unlink($file)){echo "删除档案" .$file."成功<br>";}else{echo "删除档案" .$file."失败<br>";}if(@rmdir($dir)) echo "删除资料夹",$dir,"成功";elseecho "删除资料夹",$dir,"失败";?>

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章