惊到我了
项目目标
实现具有上传,查看,删除。下载功能的在线文件库。
第一阶段-文件操作.
第三阶段-文件上传
第二阶段
目录操作:主要包括创建,删除目录,解析目录,遍历目录
1.删除和创建目录
1.mkdir函数:创建指定目录,返回bool
2.rmdir函数:删除指定目录,返回bool,需要注意的一点是若目录不为空或者没有操作权限,那么将不能完成操作。
2.目录删除与创建的练习
<?php
echo "创建和删除目录";
$dirname="testdir";
if(mkdir($dirname)){
echo "$dirname 创建成功"."<br>";
//直接创建目录
}
if(mkdir($dirname."/subdir/subbdir",0777,true)){
//允许递归创建由 pathname 所指定的多级嵌套目录
echo "$dirname /subdir/subbdir操作成功"."<br>";
}
else{
echo "操作失败"."<br>";
}
if(rmdir($dirname.'/subdir')){
//尝试对非空目录删除
echo "删除目录,操作成功"."<br>";
}
else{
echo "$dirname/subdir删除失败"."<br>";
//失败
}
if(rmdir("$dirname/subdir/subbdir")){
echo "$dirname /subdir/subbdir删除目录,操作成功"."<br>";
//尝试对空目录操作
//操作成功
}
else{
echo "删除失败"."<br>";
}
?>
得到
3.解析目录
1.basename函数:返回路径中的完整文件名,比如"index.php".
2.dirname函数:返回路径中指向文件的完整路径,即去除文件名.
3.pathinfo函数:以数组的形式返回路径中的路径名,文件名,扩展名,不带扩展的文件名。
4.解析目录的练习
<?php
$path='test/php/project/index.php';//
echo "path=$path <br> basename(\$path)=";
echo basename($path)."<br>";//输出文件名(带扩展)
echo "dirname($path)=";
echo dirname($path);//输出完整路径
echo "<br>";
foreach(pathinfo($path) as $k => $v){
//pathinfo输出带有文件信息的数组
echo "pathingo[$k]=$v <br>";
}
得到
5.遍历目录
1.opendir函数:打开指定的目录,返回目录的指针,失败返回false
2.closedir函数:关闭打开的目录
3.readdir函数:返回下一个文件名
4.scandir函数:不需要打开文件之后获得的指针作为参数,可以直接将路径作为参数,返回以数组形式的所有文件名
5.disk_total_space函数:返回总目录的磁盘空间大小
6.disk_free_space函数:返回总目录的空闲空间大小
6.遍历目录的练习
<?php
$dirname='.';//当前文件夹
echo "path=$dirname总空间:",disk_total_space($dirname);//输出总容量
echo " 目录可用空间:",disk_free_space($dirname);//输出可用大小
echo " 使用readdir()遍历目录:<br>";
echo '<table border=1 width=100%>
<col witdth=20%/>
<col witdth=20%/>
<col witdth=20%/>
<col witdth=20%/>
';
//定义表格html
echo '<tr>';
echo '<td>文件名</td>';
echo '<td>文件类型</td>';
echo '<td>创建时间</td>';
echo '<td>文件大小</td>';
echo '</tr>';
$handle=opendir($dirname);//得到目录指针
while(true){//使用全真巡循环
$a=readdir($handle);//使用readdir获取文件名
//指针移动
if (is_bool($a)) //但无返回文件名时返回false或者其他bool
break;//跳出while
if (is_string($a))//返回成功的文件名是string类型
echo '<tr>'; //表格开始一行
echo '<td>',$a.'</td>';//下一列
echo '<td>',filetype($a)."</td>";//下一列
echo '<td>',date("Y-m-d G:i:s",filectime($a))."</td>";
echo '<td>',filesize($a)."</td>";
echo '</tr>';//一行结束
}
closedir($handle);
echo '<table border=1 width=100%>
<col witdth=20%/>
<col witdth=20%/>
<col witdth=20%/>
<col witdth=20%/>
';
//定义表格html
echo '<tr>';
echo '<td>文件名</td>';
echo '<td>文件类型</td>';
echo '<td>创建时间</td>';
echo '<td>文件大小</td>';
echo '</tr>';
echo " 使用scandir()遍历目录:<br>";
$arr=scandir($dirname);
//返回一个array
foreach($arr as $a){
//使用foreach遍历array
echo '<tr>';
echo '<td>',$a.'</td>';
echo '<td>',filetype($a)."</td>";
echo '<td>',date("Y-m-d G:i:s",filectime($a))."</td>";
echo '<td>',filesize($a)."</td>";
echo '</tr>';
}
?>
得到
目录的操作差不多就这些