驚到我了
項目目標
實現具有上傳,查看,刪除。下載功能的在線文件庫。
第一階段-文件操作.
第三階段-文件上傳
第二階段
目錄操作:主要包括創建,刪除目錄,解析目錄,遍歷目錄
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>';
}
?>
得到
目錄的操作差不多就這些