建立资料夹
mkdir函数用于建立资料夹,其格式为mkdir(资料夹路径,权限)
权限以0开头,后面接的数字是读取、写入、执行的权限。
(注意:Windows环境无法套用存取权限设定,只能依照预设值0777;
Linux环境可依照需求建立各种不同权限的资料夹)
範例程式码:
<?phpif(mkdir("./dirname", 0700))echo "成功建立资料夹"."<br>";elseecho "建立资料夹失败"."<br>";?>
输出结果:
此程式码执行成功后,会在档案的同一层建立一名为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目录底下有不同类型的档案
运用glob()函数指定查看目录内.txt的档案清单
範例程式:
<?php foreach (glob("./dirname/*.jpg") as $filename)echo basename($filename)." size ".filesize($filename)."<br>";?>
输出结果:
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>";}?>
输出结果:
也可以运用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,"失败";?>